正如标题所述,我有一个String参数,当我加载Home Stateful Widget时,如果参数不为null,我想打开此底页。
据我了解,我无法在Home小部件的构建功能中调用showModalBottomSheet()
,因为它在构建Home小部件时无法开始构建底页,因此,有一种方法可以立即调用构建Home Widget之后?
答案 0 :(得分:1)
这是一种方法:
const Count = () => {
const [Hayko, setHayko] = useState('foo');
return (
<>
<div>{Hayko}</div>
<button onClick={() => setHayko(prompt('enter my name'))}>Change me</button>
</>
);
}
答案 1 :(得分:1)
解决方案之一可能是使用SchedulerBinding实例的addPostFrameCallback函数。这样,您可以在构建Home小部件后调用showModalBottomSheet。
import 'package:flutter/scheduler.dart';
...
@override
Widget build(BuildContext context) {
SchedulerBinding.instance.addPostFrameCallback((timeStamp) {
showModalBottomSheet<void>(
context: context,
builder: (BuildContext context) {
//Your builder code
},
);
});
//Return widgets tree for Home
}