javascript - 反应如何调用一个道具
问题描述
我试图在页面加载之前调用组件道具上的方法。为了测试,我创建了一个按钮来调用该方法,但这不是我想要的,我不知道如何更改它,因此当您到达此路径时会立即调用它。
我当前的代码:
class BrokersList extends React.Component {
getTableData = () => {
this.props.getBrokerDetails()
}
render () {
return (
<Paper className={this.props.classes.root}>
<button
variant="outlined"
color="primary"
onClick={this.getTableData}></button>
{this.props.details.length > 0 && <Table {...this.props}/>}
</Paper>
)
}
}
我想过getTableData
通过render方法调用,但是render应该是纯的所以它不起作用。(Table
组件正在从此方法更新的状态中填充)
解决方案
为此,您可以使用componentDidMount
生命周期方法。
这是可能对您有用的示例代码。
class BrokersList extends React.Component {
componentDidMount() {
this.props.getBrokerDetails()
}
render () {
return (
<Paper className={this.props.classes.root}>
{this.props.details.length > 0 && <Table {...this.props}/>}
</Paper>
)
}
}
现在,您的调用getBrokerDetails
将在该组件的第一次渲染后立即触发。有关此生命周期方法的更多详细信息,请参见此处。
推荐阅读
- css - 如何在 scss 中使用 rgba 作为 css 变量?
- html - Django - 用户登录时导航栏未正确显示
- android-studio - 错误完成:Gradle 任务 assembleDebug 失败,退出代码为 -1,Flutter
- jquery - AJAX 成功后表未重新加载
- reactjs - React & RXJS 非标准
- debugging - 时间复杂度的状态差异?
- flutter - 如何将蓝色框从父组件的右外侧移动到左外侧
- kubernetes - metric-server crashloopbackoff - 错误:未经授权
- vue.js - 如何从 Vue js 中的外部 JS 文件导入函数?
- python - 我是否在 Linux 上每小时正确运行 python cronjob