颤振 |参数类型 'Object?' 无法分配给参数类型 'int'
Flutter | The argument type 'Object?' can't be assigned to the parameter type 'int'
我的代码出现错误。当我将 int 值索引传递给函数时。这是我的代码,可能会帮助您解决我的问题。
import 'package:flutter/material.dart';
class Gratitude extends StatefulWidget {
final int radioGroupValue;
const Gratitude({required Key key, required this.radioGroupValue}) : super(key: key);
@override
_GratitudeState createState() => _GratitudeState();
}
class _GratitudeState extends State<Gratitude> {
final List<String> _gratitudeList = [];
late String _selectedGratitude;
late int _radioGroupValue;
void _radioOnChanged(int index) {
setState(() {
_radioGroupValue = index;
_selectedGratitude = _gratitudeList[index];
print('_selectedRadioValue $_selectedGratitude');
});
}
@override
void initState() {
super.initState();
_gratitudeList..add('Family')..add('Friends')..add('Coffee');
_radioGroupValue = widget.radioGroupValue;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Gratitude'),
actions: <Widget>[
IconButton(
icon: const Icon(Icons.check),
onPressed: () => Navigator.pop(context, _selectedGratitude),
),
],
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Row(
children: <Widget>[
Radio(
value: 0,
groupValue: _radioGroupValue,
onChanged: (index) => _radioOnChanged(index),
),
const Text('Family'),
Radio(
value: 1,
groupValue: _radioGroupValue,
onChanged: (index) => _radioOnChanged(index),
),
const Text('Friends'),
Radio(
value: 2,
groupValue: _radioGroupValue,
onChanged: (index) => _radioOnChanged(index),
),
const Text('Coffee'),
],
),
),
),
);
}
}
错误是:无法将参数类型 'Object?' 分配给参数类型 'int'。
使用以下代码指向所有 3 行。
onChanged: (index) => _radioOnChanged(index)
试试这个:onChanged: (index) => _radioOnChanged(index as int)
以告诉 dart 将对象转换为 int。
我的代码出现错误。当我将 int 值索引传递给函数时。这是我的代码,可能会帮助您解决我的问题。
import 'package:flutter/material.dart';
class Gratitude extends StatefulWidget {
final int radioGroupValue;
const Gratitude({required Key key, required this.radioGroupValue}) : super(key: key);
@override
_GratitudeState createState() => _GratitudeState();
}
class _GratitudeState extends State<Gratitude> {
final List<String> _gratitudeList = [];
late String _selectedGratitude;
late int _radioGroupValue;
void _radioOnChanged(int index) {
setState(() {
_radioGroupValue = index;
_selectedGratitude = _gratitudeList[index];
print('_selectedRadioValue $_selectedGratitude');
});
}
@override
void initState() {
super.initState();
_gratitudeList..add('Family')..add('Friends')..add('Coffee');
_radioGroupValue = widget.radioGroupValue;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Gratitude'),
actions: <Widget>[
IconButton(
icon: const Icon(Icons.check),
onPressed: () => Navigator.pop(context, _selectedGratitude),
),
],
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Row(
children: <Widget>[
Radio(
value: 0,
groupValue: _radioGroupValue,
onChanged: (index) => _radioOnChanged(index),
),
const Text('Family'),
Radio(
value: 1,
groupValue: _radioGroupValue,
onChanged: (index) => _radioOnChanged(index),
),
const Text('Friends'),
Radio(
value: 2,
groupValue: _radioGroupValue,
onChanged: (index) => _radioOnChanged(index),
),
const Text('Coffee'),
],
),
),
),
);
}
}
错误是:无法将参数类型 'Object?' 分配给参数类型 'int'。
使用以下代码指向所有 3 行。
onChanged: (index) => _radioOnChanged(index)
试试这个:onChanged: (index) => _radioOnChanged(index as int)
以告诉 dart 将对象转换为 int。