This.setState导致浏览器挂起+ Reactjs

时间:2017-04-03 09:02:15

标签: reactjs

var columns = []
    for (var key in this.props.col)
    {
        if (this.state.isEditing){
            columns.push(<td key = {key.id}><input ref = "txt" type = "text" value = { this.state.itemValue } onChange = { this.onTextChange.bind(this) } /></td>)
        }
        else
        {
            columns.push(<td key = {key.id}>{ this.props.col[key] }</td>)
            // this.setState({
            //  itemValue: key,
            //  isEditing: false
            // })
            console.log(key)
        }
        console.log(key);
    }
    return columns

每次我取消注释这一行:

// this.setState({
            //  itemValue: key,
            //  isEditing: false
            // })

它会导致浏览器挂起。并且在浏览器上显示模式消息,该消息显示&#34;此页面上的脚本可能正忙着#34;并问我是否要停止脚本或继续。感谢。

1 个答案:

答案 0 :(得分:1)

每次你设置状态&#39;时,你的组件都会重新渲染,我猜你的函数在渲染阶段被调用(因为它似乎构建了列)