我想创建一个React App,它根据用户提供的过滤器获取数据。我有两个类,过滤器和新闻。在Filters中,我想将sourceName和countryCode设置为state;然后在新闻中根据这些参数获取。如何将状态值作为道具传递给新闻?
答案 0 :(得分:2)
最好的方法是从两个元素的父元素中传递状态。
import React, { Component } from "react";
export default class Parent extends Component {
constructor() {
super();
this.state = {
sourceName: null,
contryCode: null
}
}
render() {
return (
<div>
<Filters {...this.state} />
<News {...this.state} />
</div>
)
}
}
你应该始终将状态保存在渲染链中较高的元素中,然后是所有需要它的子元素。这样做可以让你将状态传递给所有需要它的孩子。然后,只有该组件是唯一需要它的组件才能在组件内维护时间状态。
答案 1 :(得分:0)
你可以简单地将状态作为道具传递给孩子。
比如<News filter={this.state.filer} />
。