我的父组件检索列表并将其膨胀为表。
我希望行单击cb (onRowClick)来使用来自父组件支持/状态的一些数据填充另一个组件。
我知道这可以用redux来完成。有没有另一种方法可以简单地设置子组件而不呈现它,然后在单击cb上设置它的道具?
单击cb当前如下所示:
onRowClick={(event) => {
return <ChildComponent data={props.data.data[event.index]} />
}}这不调用ChildComponent render函数,因为组件没有连接。
发布于 2019-06-08 18:28:31
如果不想使用redux,可以使用简单的道具传递一个设置状态的函数,并将状态数据传递给其他组件。
const App = () => {
const [apiData, setApiData] = useState([]);
useEffect(() => {
// fetch api here
setApiData();
})
const [data, setData] = useState();
return (
<>
<Component1 tableData={apiData} onRowClick={setdata} />
<ChildComponent data={data}/>
</>
);
}如果这两个组件在树中相距很远,那么您可以使用react上下文在它们之间传递数据。
https://stackoverflow.com/questions/56508837
复制相似问题