作者回复: 给你看一个实际的例子,你可能就可以理解了。关键在于,useEffect 中判断是否要去获取数据。这个判断条件可能因场景而异,比如下面的代码,只在 admins 不存在,并且没有 error 不在 pending 的情况下,才调用接口。 export function useFetchAdmins() { const dispatch = useDispatch(); const { admins, fetchAdminsPending, fetchAdminsError } = useSelector( state => ({ admins: state.pluginPluginManager.home.admins, fetchAdminsPending: state.pluginPluginManager.home.fetchAdminsPending, fetchAdminsError: state.pluginPluginManager.home.fetchAdminsError, }), shallowEqual, ); const boundAction = useCallback( (...args) => { return dispatch(fetchAdmins(...args)); }, [dispatch], ); useEffect(() => { if (!admins && !fetchAdminsPending && !fetchAdminsError) boundAction(); }, [admins, fetchAdminsPending, fetchAdminsError, boundAction]); return { admins, fetchAdmins: boundAction, fetchAdminsPending, fetchAdminsError, }; }
作者回复: 谢谢支持,过奖了~~ 目前先把这次课程完结了哦,暂时没有后续计划
作者回复: 是的,很多其实挺简单的东西,需要很长的文档来说明场景和用法,造成了看上去很复杂的现象。
编辑回复: 感谢反馈,马上修正
作者回复: 感谢指出,已提交修改。
作者回复: 谢谢指出!会更新一下。
作者回复: 1. 每个组件用到 redux 上哪些 state,一定要具体,不要绑定在一个太大的节点上。 2. 第9课会讲哦。