颤振类双扩展

时间:2021-03-03 14:44:07

标签: flutter dart

在一个类中可以有双重扩展吗?就我而言,我有 pod repo push <REPO_NAME> <PATH_TO_YOUR_PODSPEC_FILE>.podspec 类,我只想扩展 class AddCreditsState extends State<AddCredits> 中的 HookWidget

class AddCreditsState extends State<AddCredits>

}

1 个答案:

答案 0 :(得分:1)

在 Dart 中,可以implements 多个接口,但 Dart 只支持单继承。因此,您不能从多个类中extends

不过,您可以将多个 Mixin 与 with 一起使用。

但在这种特殊情况下,您可能想要的是一个 StatefulHookWidget,一个可以在其构建方法中使用钩子的 StatefulWidget。

enter image description here

完整源代码

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';

void main() {
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'StatefulHookWidget Example',
      home: HomePage(),
    ),
  );
}

class HomePage extends StatefulHookWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String _state = 'Hello';
  @override
  Widget build(BuildContext context) {
    final _hookedVar = useState('Hello');
    return Scaffold(
      appBar: AppBar(title: Text('StatefulHookWidget Example')),
      body: Container(
        padding: EdgeInsets.all(16.0),
        alignment: Alignment.center,
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text('STATE: $_state'),
            const SizedBox(height: 16.0),
            Text('HOOK: ${_hookedVar.value}'),
            const SizedBox(height: 16.0),
            ElevatedButton(
              onPressed: () {
                setState(() => _state = 'Goodbye');
                _hookedVar.value = 'Goodbye';
              },
              child: Text('CLICK ME'),
            )
          ],
        ),
      ),
    );
  }
}