React - 返回组件onClick事件

时间:2017-08-24 10:57:42

标签: reactjs

我可以在onClick中的reactjs - 事件中创建新组件吗? 我试过这个:

发生点击事件的组件:

...
<li onClick={this.edit.bind(this)}><span className="glyphicon glyphicon-pencil"></span> Edit entry</li>
...

这是edit方法:

 edit(event) {
        return <CreateFreightEntryModal key={"freightEditModal" + this.state.freight.ID} openOnStartup="true" modalId={"freightEditModal" + this.state.freight.ID} />
    }

不会引发任何错误,但未创建组件。我做错了什么或者这不是真的推荐?

2 个答案:

答案 0 :(得分:3)

在反应中,由于它的本质,显示模态有点棘手。

edit() {
    this.setState({ showModal: true })
}

render() {

    return (
        <div>
             { this.state.showModal && <CreateFreightEntryModal props/> }
        </div>
    )

}

答案 1 :(得分:1)

  

你最好用@Ozgur GUL中的状态渲染组件状态   答案。

但是,如果你必须动态渲染某些东西,你可以这样做。

import ReactDOM from 'react-dom';

...
edit() {
  ReactDOM.render(<CreateFreightEntryModal key={"freightEditModal" + this.state.freight.ID} openOnStartup="true" modalId={"freightEditModal" + this.state.freight.ID} />);
}