Flutter:我怎样才能解决每个状态下的这个错误

问题描述 投票:0回答:1

我在使用 Riverpod 时遇到了严重的 Flutter 问题。我刚刚开始学习,但每次

.state
都会遇到错误,并且没有AI能够帮助我解决问题。

完整代码如下:

// my_button_widget.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

final buttonSelectedProvider = StateProvider<bool>((ref) => false);

class MyButtonWidget extends ConsumerWidget {
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Riverpod Button Example'),
      ),
      body: Center(
        child: ElevatedButton(
          style: ButtonStyle(
            backgroundColor: MaterialStateProperty.resolveWith<Color>(
              (Set<MaterialState> states) {
                if (states.contains(MaterialState.pressed))
                  return Colors.orange;
                return ref.watch(buttonSelectedProvider).state //error in .state
                    ? Colors.orange
                    : Colors.white; // Use the component's default.
              },
            ),
          ),
          onPressed: () {
            ref.read(buttonSelectedProvider).state = //error in .state
                !ref.read(buttonSelectedProvider).state; //error in .state
          },
          child: Text('Press me'),
        ),
      ),
    );
  }
}

VS Code 的建议如下:

没有为类型“bool”定义 getter“state”。尝试导入 定义“状态”的库,将名称更正为 现有的 getter,或者定义名为的 getter 或字段 'state'.dartundefine_getter 类型:InvalidType

我在

pubspec.yaml
中的 Riverpod 版本是:
flutter_riverpod: ^2.4.9
。”

flutter dart provider riverpod
1个回答
0
投票

来自变更日志

已弃用 StateProvider.state 而是使用 ref.watch(stateProvider) 或 ref.read(stateProvider.notifier).state =

© www.soinside.com 2019 - 2024. All rights reserved.