2017-04-03 4 views
0
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 

私は、この行のコメントを解除するたびに+ Reactjsがハングアップする原因となります。また、ブラウザに「このページのスクリプトがビジー状態である」というメッセージが表示され、スクリプトを停止するか続行するかを尋ねるメッセージが表示されます。ありがとう。This.setStateは、ブラウザが

+0

がどのようにコードのこの部分を呼び出している(列を構築しているようですので)私はあなたの関数は、レンダリングフェーズ中に呼び出されると思います。 –

+0

具体的には、状態を設定していますか?既定では、SetStateを設定すると、render()が呼び出されます。したがって、render()で状態を設定している場合は、この決して終わらないループを持つことになります。 – Dan

+0

一般的なフィードバックだけでは、文字列 'ref'はレガシーとみなされ、Reactから削除される可能性が高いため、' ref'を使わないようにしてください。代わりに 'ref = {(input)=> {this.input = input}}' – Dan

答えて

1

あなた「SETSTATE」たびに、あなたのコンポーネントが再描画されます、そして

関連する問題