【发布时间】:2021-08-24 22:29:26
【问题描述】:
我正在开发我的第一个 React 应用程序,目前面临的问题是在运行时必须在多个组件之间交换数据。我已经找到了各种方法来解决这个问题,但是对于我应该遵循哪一种以及哪一种最有意义感到完全困惑。
需求1:从父组件向子组件发送数据(运行时)
数据应该从父组件发送到子组件。例如,这可能是输入字段的内容。我目前为此使用参考 API。在父组件中,我创建了对子组件的引用,并使用回调 (onChange) 调用子组件的函数(带参数)。
const map = useRef();
[...]
<Map ref={map} />
[...]
<input type="text" placeholder="Enter location" onChange={enterLocation} />
[...]
function enterLocation(event) {
map.current.locationSearch(location); // Function of the child component
}
要求 2:将数据从子组件发送到另一个子组件(运行时)
数据将在两个子组件之间发送。我找到了各种方法:Redux、Context API 以及 Reference API。我的想法是首先将数据发送到父组件,然后通过引用将其发送到另一个子组件。然而,这对我来说似乎是不必要的复杂。
【问题讨论】:
-
Codesandbox 中的类似内容应该涵盖您的用例 - 不需要参考。当然有多种方法可以做到这一点,但这是没有 Redux 或 ContextApi 的最简单的解决方案。它将状态保留在父级中,子级只是渲染事物。如果这是您要查找的内容,我将在代码中添加包含一些详细信息的答案。
标签: reactjs redux components react-component