React 组件状态管理 useContext 的 Provider 怎么传递额外参数?
现在想要传递一个初始化的表单数据到 useState
里而且表单里的字段是通过接口出来的,但现在根据文档参数被 {}
限制了,想问下额外的参数要怎么传递?<FormProvider>
export function FormProvider({ children } : { children: React.ReactNode }) {
const [form, setFrom] = useState({})
return (
<FormContext.Provider value={form}>
<FormDispatchContext.Provider value={setFrom}>
{children}
</FormDispatchContext.Provider>
</FormContext.Provider>
);
}
回复
1个回答
test
2024-06-27
用initialData属性来初始化useState:
export function FormProvider({ children, initialData } : { children: React.ReactNode, initialData: any }) {
const [form, setForm] = useState(initialData || {});
return (
<FormContext.Provider value={form}>
<FormDispatchContext.Provider value={setForm}>
{children}
</FormDispatchContext.Provider>
</FormContext.Provider>
);
}
用的时候:
<FormProvider initialData={yourInitialData}>
// ... 组件
</FormProvider>
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容