1

我有一个带有useValueChanged监听器的钩子小部件,如下所示:

    useValueChanged(selectedLayout.value, (_, __) {
      changeLayout(selectedLayout.value);
    });

changeLayout(..)用于useFuture(..)进行 graphql 突变调用并返回包裹在 a 中的 FutureAsyncSnapshot

回调中的值更改onTap如下:

    onTap: () {
      selectedLayout.value = "classic";
    },

我的 HookWidget 抛出类型不匹配错误。有什么方法可以在useFuture()useValueChanged()一个 HookWidget 中使用吗?

Bad state: Type mismatch between hooks:
- previous hook: _ValueChangedHook<String, Null>
- new hook: _FutureHook<QueryResult>
4

1 回答 1

0

我被困住了,useValueChanged但我有办法做到这一点。这是代码:

useValueChanged(state, (_, __) {
  return controller.animateTo(
      min(controller.position.maxScrollExtent, controller.offset + 50.0),
      duration: Duration(seconds: 10),
      curve: Curves.linear);
});

这对我来说很好。

于 2021-09-28T18:30:30.493 回答