我有一个很难的主意。基本上我是这样使用useRef()的
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart' as image_picker;
import 'package:provider/provider.dart';
import 'package:simple_flutter_i18n/simple_flutter_i18n.dart';
// import '../i18n/i18n.dart';
class DropDown extends StatelessWidget {
@override
Widget build(BuildContext context) {
final language = Provider.of<I18n>(context).lang;
return Container(
child: DropdownButton(
onChanged: (d) {},
items: [
DropdownMenuItem(
child: Container(
width: 100,
height: 10,
color: Colors.red,
),
),
DropdownMenuItem(
child: Container(
width: 100,
height: 10,
color: Colors.blue,
),
)
],
),
);
}
}
然后我根据将useRef作为ref传递的父项的状态来渲染适当的子项
const refInput = useRef();
这有效。但是我收到警告说:
警告:不能为功能组件提供引用。尝试访问此引用将失败。您是要使用React.forwardRef()吗?
只要我为cloneElement提供forwardRef,它似乎就可以使用。有人知道我该怎么做吗?