javascript – onClick不会渲染新的反应组件.

前端之家收集整理的这篇文章主要介绍了javascript – onClick不会渲染新的反应组件.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新来的反应世界,我有这样的行:
  1. <Button onClick={() => console.log("hello")}>Button</Button>

点击后,您将在控制台上打印出来.现在更改行:

  1. <Button onClick={() => <NewComponent />}>Button</Button>

现在点击按钮,我希望渲染NewComponent.但是没有.

我不知道为什么会这样.请注意,我在render方法中有上述代码.

解决方法

您可能希望有一个有状态的组件在单击按钮后显示该按钮旁边的另一个组件.所有您需要做的是跟踪按钮是否被点击:
  1. class MyComponent extends React.Component {
  2. constructor(props) {
  3. super(props);
  4. this.state = {
  5. showComponent: false,};
  6. this._onButtonClick = this._onButtonClick.bind(this);
  7. }
  8.  
  9. _onButtonClick() {
  10. this.setState({
  11. showComponent: true,});
  12. }
  13.  
  14. render() {
  15. return (
  16. <div>
  17. <Button onClick={this._onButtonClick}>Button</Button>
  18. {this.state.showComponent ?
  19. <NewComponent /> :
  20. null
  21. }
  22. </div>
  23. );
  24. }
  25. }

猜你在找的JavaScript相关文章