React Modal - 使用参数 onClick 调用函数,而不是渲染
React Modal - call function with params onClick, not on render
我遇到的问题与当用户单击将打开模式的按钮时调用函数有关。该函数的目的是发出 GET 请求以获取用户信息以填充模式。我正在使用 react-modal 包,它接受一个 onAfterOpen 道具。我知道我可以使用这个 prop 来调用我的函数,但是为了发出 GET 请求,我还需要将一个 id 传递给请求。
我的模态设置如下:
<Modal
isOpen={this.props.isSelected}
onRequestClose={this.props.closeModal}
onAfterOpen={this.props.getInfo(id)}
// Also tried declaring function like below, but then I have no reference to user id.
onAfterOpen={this.props.getInfo}
contentLabel="Hello"
>
</Modal>
像这样声明我的函数的问题是我的页面呈现了一个按钮列表,这些按钮与模式相关联。所以在渲染时,this.props.getInfo(id) 将被调用。
例如,我的容器组件将呈现一个 Button 组件列表(比如 9),如果每个 Button 组件都包含一个 Modal 组件,那么该函数将被调用 9 次。
您可以像这样使用 .bind
:
onAfterOpen={this.props.getInfo.bind(this, id)}
我遇到的问题与当用户单击将打开模式的按钮时调用函数有关。该函数的目的是发出 GET 请求以获取用户信息以填充模式。我正在使用 react-modal 包,它接受一个 onAfterOpen 道具。我知道我可以使用这个 prop 来调用我的函数,但是为了发出 GET 请求,我还需要将一个 id 传递给请求。
我的模态设置如下:
<Modal
isOpen={this.props.isSelected}
onRequestClose={this.props.closeModal}
onAfterOpen={this.props.getInfo(id)}
// Also tried declaring function like below, but then I have no reference to user id.
onAfterOpen={this.props.getInfo}
contentLabel="Hello"
>
</Modal>
像这样声明我的函数的问题是我的页面呈现了一个按钮列表,这些按钮与模式相关联。所以在渲染时,this.props.getInfo(id) 将被调用。
例如,我的容器组件将呈现一个 Button 组件列表(比如 9),如果每个 Button 组件都包含一个 Modal 组件,那么该函数将被调用 9 次。
您可以像这样使用 .bind
:
onAfterOpen={this.props.getInfo.bind(this, id)}