0

How to fix this error? Here is my data table.dart:

Widget build(BuildContext context) {
  Controller controller = Get.put(Controller());
  return Column(
    children: [
      SingleChildScrollView(
        scrollDirection: Axis.vertical,
        child: SingleChildScrollView(
          scrollDirection: Axis.horizontal,
          child: DataTable(columns: [
            DataColumn(
              label: Text('Order No'),
            ),
            DataColumn(
              label: Text('Quantity'),
            ),
            DataColumn(
              label: Text('Retail Price'),
            ),
            DataColumn(
              label: Text('Payment Status'),
            ),
            DataColumn(
              label: Text('Date'),
            ),
            DataColumn(
              label: Text('Assign Rider'),
            ),
          ], rows: [
            DataRow(
                cells: [
              DataCell(Text('637c8e3a')),
              DataCell(Text('1')),
              DataCell(Text('1.00')),
              DataCell(Text('UnPaid')),
              DataCell(
                Text('2022-11-22 08:54:18'),
              ),
              DataCell(
                Obx( () => DropdownButton(
                  hint: Text(
                    'Book Type',
                  ),
                  onChanged: (newValue) {
                    controller.setSelected(newValue);
                  },
                  value: controller.selected.value,
                  items: controller.listType.map((selectedType) {
                    return DropdownMenuItem(
                      child: new Text(
                        selectedType,
                      ),
                      value: selectedType,
                    );
                  }).toList(),
                )
                ),
              ),
            ])
          ]),
        ),
      )
    ],
  );
}
final selected = "".obs;

void setSelected(String value){
  selected.value = value;
}

here is what I got in my console:

Performing hot reload...
Syncing files to device TECNO CH7n...
lib/widget/data_table.dart:52:46: Error: The argument type 'Object?' can't be assigned to the parameter type 'String'.
 - 'Object' is from 'dart:core'.
                      controller.setSelected(newValue);
                                             ^
lib/widget/data_table.dart:55:39: Error: The getter 'listType' isn't defined for the class 'Controller'.
 - 'Controller' is from 'package:vendor_app/controller/dropdown_controller.dart' ('lib/controller/dropdown_controller.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'listType'.
                    items: controller.listType.map((selectedType) {
                                      ^^^^^^^^

Please help me this how to fix this error, THANKS!

1 Answer 1

0

There is two methods to solve your problem first just add .toString() after newValue like below code

   onChanged: ( newValue) {
                controller.setSelected(newValue.toString());
              },

Or you can just define the type in onChanged method like

 onChanged: (String? newValue) {
                controller.setSelected(newValue??'');
              },

I think This will help you. if you have any confusion feel free to ask

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.