【发布时间】:2021-04-01 02:23:46
【问题描述】:
- 所以,我有一个组件包含多个具有不同反应状态的子组件。比如标题、关键词、地点、日期等
- 如何将所有状态存储在一个数组(信息)中?这个数组的每个元素都应该是一个对象
- 存储后,需要传递给父组件。
const CreateEventsBasic = () => {
const [info, setInfo] = useState([]);
return (
<div className="create-event-basic">
<BasicInfo/>
<Keywords />
<Location />
<Date />
<LinkToTheGroup />
</div>
);
};
【问题讨论】:
-
在 React 中,数据向下流动,而不是相反。您可以做的是在父组件中拥有状态并将该状态作为道具传递给每个子组件。
-
我建议您看看全球商店,例如 Redux。这可以帮助你。否则,如果要使用本地状态,则必须将更新
CreateEventsBasic的函数向下传递给子级,并在状态更改时调用它。与其拥有一个数组,不如使用一个对象来代替 -
@szczocik 我不太擅长英语,但它应该是一个对象数组。据我所知,您不能直接在 useState 中传递对象。但无论如何,谢谢,我会朝这个方向看
-
您也可以使用 Context API 来执行此操作。它用于拥有可供任何级别的任何子组件使用的通用数据存储。它易于学习和上手。
标签: javascript reactjs react-native ecmascript-6 react-hooks