1

当我调用一个动作时,第一次加载数据非常好。组件再次重​​新渲染并弄乱了状态。

默认状态

menu_detail: {
    error: null,
    menu_id: 0,
    detail: {}
  }

工作状态

menu_detail: {
    error: null,
    menu_id: 2,
    detail: {
      menu: {
        ...
    }
  }

意外渲染后

menu_detail: { }

我的代码

    const setMenuDetail = useStoreActions(actions => actions);
    const getMenuDetail = useStoreActions(actions => actions.menu_detail.getMenuDetail);
    const setMenuId = useStoreActions(actions => actions.menu_detail.setMenuId);
    const menu_id = useStoreState(state => state.menu_detail.menu_id);
    const menu = useStoreState(state => state.menu_detail.detail.menu);
    // const menu_option_categories = useStoreState(state => state.menu_detail.menu_detail.menu_option_categories);
    const { data } = props.location;
    React.useEffect(() => {
        setMenuId(parseInt(data));
        getMenuDetail();
    }, [menu]);
    ...
4

1 回答 1

0

我将 React.useEffect() 更新为:

React.useEffect(() => {
        setMenuId(parseInt(data));
        getMenuDetail(2);
    }, []);

现在它起作用了。

于 2021-01-30T08:09:19.180 回答