无法改变状态

时间:2017-03-22 17:58:53

标签: reactjs

预期的行为:应用程序应首先显示John,然后我将状态(名称)更改为George(setTimeout),以便显示。状态似乎没有改变。任何想法?

import React, { Component } from 'react';


class App extends Component {
  constructor(props){
    super(props);

    this.state={name:"John"};
  }

  render() {
    setTimeout(() => {
      this.setState=({name:"George"})
    }, 2000)

    return (
        <div>
        {this.state.name}

        </div>
    );
  }
}

export default App;

1 个答案:

答案 0 :(得分:0)

在评论中,您可以使代码正常工作。但是我想在这里添加一个答案,其中包含在render()函数中更改组件状态的好消息。

当你的状态改变时,将调用render()函数,它将调用setTimeout,它将再次改变状态......所以你将进入渲染组件的无限循环。

在此期间,正确的方法是让你在组件的componentDidMount()函数中设置setTimeout。