我将使用 Reacts context api 加减速器。因为我发现了很多方法来实现这一点并且缺乏文档,所以我不知道我做得是否正确。 我为了拥有一个全局状态我已经这样做了:
import {createContext, useReducer} from "react";
import {appReducer} from "../reducers/appReducer";
function lazyInitializer() {
return {db: 1}
}
export const AppContext = createContext(); //Invalid number of arguments, expected 1 (defaultValue)
const AppContextProvider = (props) => {
const [globalState, appDispatch] = useReducer(appReducer, null, lazyInitializer);
return (
<AppContext.Provider value={{globalState, appDispatch}}>
{props.children}
</AppContext.Provider>
)
}
export default AppContextProvider;
我必须提供
createContext
默认值吗?这是使用延迟初始化的正确方法吗?它确实按照上面的方式工作。如果有更好的解决方案实现全局状态请告诉我。
顺便说一句,我不想使用 Redux 来保持项目简单。
只需粘贴
null
默认值即可。