我正在父组件和VersionContainer中获取异步数据,我想像initialState一样使用它并传递给上下文提供程序。但是,当我以这种方式执行此操作时,ContentVersionProvider中的值是未定义的。有什么问题吗?
const VersionContainer: React.FC<IProps> = ({ data }) => {
const initialState: Partial<IVersionHistoryContext> = data;
const [state, dispatch] = useReducer(versionReducer, initialState);
return (
<ContentVersionsProvider value={dispatch}>
<ContentVersionProvider value={state}>
<div className="row">
<div className="col-6 p-0">
<VersionPreview />
</div>
<div className="col-6 p-0">
<Version />
</div>
</div>
</ContentVersionProvider>
</ContentVersionsProvider>
);
};
export default VersionContainer;
答案 0 :(得分:0)
在initialState
更新时,将useReducer
传递给data
不会更新状态。
意思是,如果data
为undefined
并且可用,它将不会更新state
。
因此,只有在data
可用时才需要传递它:
data && <VersionContainer data={data}/>