[英]React: How to reload data from parent component and render when child component do update?
I've 1 Parent component, 1 child component, and 1 child's child component.我有 1 个父组件、1 个子组件和 1 个子组件。 Im using Jotai state management.
我正在使用 Jotai state 管理。
Parent Component:父组件:
const viewLog = useSetAtom(setViewStatusLogDialog);
const handleShowStatusLog = (data) => {
viewLog({
open: true,
data, // the data I used in child component
}); };
Child component (LogDetails.js):子组件(LogDetails.js):
export const setViewStatusLogDialog = atom(null, (_get, set, update)
=> { const { open, data} = update;
set(openStatusLogDialogAtom, open);
set(dataAtom, data); });
Child's child component (create form)孩子的子组件(创建表单)
My Problem is:我的问题是:
When I do save in the create form (Child's child component), the log details (child component) wont get the latest data and show it, how can I do that?当我在创建表单(子组件)中保存时,日志详细信息(子组件)不会获取最新数据并显示它,我该怎么做?
Not sure about Jotai state management, but you can simple pass a function from Child Component (LogDetails.js) to Child's child component and call that function with new data on save.不确定 Jotai state 管理,但您可以简单地将 function 从子组件 (LogDetails.js) 传递到子组件的子组件,并在保存时使用新数据调用该 function。
ChildComponent子组件
function ChildComponent() {
const viewLog = useSetAtom(setViewStatusLogDialog);
const setNewLogData = newData => {
const data = [...oldData, newData];
viewLog({open: true, data });
}
return <>
{logData.map(data => <p>{data}</p>}
<ChildChildComp setNewLogDataToParent={setNewLogData} />
</>
}
Child's child component Child 的子组件
function ChildComponent(props) {
const [data, setData] = useState();
const onSave = () => {
...
props.setNewLogDataToParent(data);
}
return <>
<input type="text" onChange={e => setData(e.target.value) />
<button onClick={onSave}>Save</button>
</>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.