javascript - 子组件的 setState 仅在被调用时
问题描述
我有一个父组件,我已经像这样在其 HTML 中调用了子组件。
render() {
<EditBank
deal={dealDetailData && dealDetailData.id}
open={editBankModalStatus}
headerText={"Edit Bank Account"}
getInvestmentOfferingDetailsById = {() =>this.props.getInvestmentOfferingDetailsById({
id: this.props.match.params.id
})}
bankDetail={bankDetails}
toggleEditModal={() => this.handleEditModal("editBankModalStatus", {})}
/>
}
EditBank 组件是一种模式,仅在editBankModalStatus
为 true 时显示,并且在单击按钮时设置为 true。
现在我只想在单击按钮并且将任何 bankDetails 传递给它时设置 EditBank 的状态。
我已经厌倦了 componentDidMount 生命周期钩子,但它仅在组件渲染时更新。
当 EditBank 组件仅显示在屏幕上时,我想更新它的状态。任何帮助表示赞赏。
解决方案
尝试这样做:
render(){
return (
<div>
{editBankModalStatus === true &&
<EditBank
deal={dealDetailData && dealDetailData.id}
open={editBankModalStatus}
headerText={"Edit Bank Account"}
getInvestmentOfferingDetailsById = {() =>this.props.getInvestmentOfferingDetailsById({
id: this.props.match.params.id
})}
bankDetail={bankDetails}
toggleEditModal={() => this.handleEditModal("editBankModalStatus", {})}
/>
}
</div>
);
}
所以 EditBank 只有在editBankModalStatus
为真时才会显示。
推荐阅读
- python - xgboost的两种界面工作方式完全一样吗?
- java - Web 应用程序没有从数据库中获取实际数据,使用 EclipseLink
- reactjs - 如何加载 js-yaml 包?
- visual-studio - 适用于 Office 的 Visual Studio 工具 - 使用多个 Outlook 2013-2016 多次访问同一 gmail 帐户
- javascript - 在 IONIC3 中循环遍历数组时获取和更新记录
- reactjs - 如果注册成功,React redux 登录用户
- rest - 当我尝试使用私有企业 Github 帐户时出现 HTTP 401 错误消息
- sql - 为 SQL 文件生成 TypeScript
- javascript - 一个输入的多个标签上的复选框动画
- react-native - React 本机应用程序突然重新加载包并崩溃。什么可以触发捆绑重新加载?