Javascript 反应如何从子组件更新App.js中的数据
我正在构建一个React应用程序。我没有后端服务器。相反,我使用了一个名为Javascript 反应如何从子组件更新App.js中的数据,javascript,reactjs,Javascript,Reactjs,我正在构建一个React应用程序。我没有后端服务器。相反,我使用了一个名为securities.json的.json文件作为后端服务器。json文件列出了每个证券中的证券和价格列表 我试图做的是将更新后的价目表从其子组件提交到App.js上的securities.json(父组件)。我注意到,当我在价格弹出窗口中添加一个新的价格,然后关闭它,但再次检查价格弹出窗口。我输入的新价格消失了。我想不出怎么解决它。我正试图按照一位开发者的建议将其传递给App.js 有人能看看我在CodeSandBox中
securities.json
的.json文件作为后端服务器。json文件列出了每个证券中的证券和价格列表
我试图做的是将更新后的价目表从其子组件提交到App.js上的securities.json(父组件)。我注意到,当我在价格弹出窗口中添加一个新的价格,然后关闭它,但再次检查价格弹出窗口。我输入的新价格消失了。我想不出怎么解决它。我正试图按照一位开发者的建议将其传递给App.js
有人能看看我在CodeSandBox中的代码吗?
两种解决方案:
您还可以将更新函数作为道具传递给子组件,以更新父组件的状态。我的猜测是,价目表是在构造函数中设置的。在那里,状态是通过道具设置的。更改道具时,价目表状态不会更新,因为设置状态发生在构造函数中,该构造函数只执行一次。当道具发生变化时,您需要更新状态 这就是我所说的代码
constructor(props) {
super(props);
this.state = {
priceArr: this.props.pricelist,
// newPriceArr: this.props.updatePrice,
showPricePopup: false,
addPricePopup: false,
isToggleOn: true,
date: props.date || "",
number: props.number || ""
};
}
当道具更改时,您可能需要使用设置状态。我无法使其正常工作,不断收到有关未定义的
closePopup()
的错误。