2017-06-04 5 views
0

に適切にされて動作していない状態、状態に入力フィールドの値を格納してを消えますユーザーが保存ボタンをクリックしたときの状態の長さを確認しようとしています。問題はそこにあります。それは言うの、このエラーだ:Uncaught TypeError: Cannot read property 'state' of null、しかし、あなたは私に言うことができますしてくださいということですなぜ私はすでにeditData状態にデータを保存しましたか?ここで私がやろうとしている何ReactJS

はあなたがhandleChangesaveをバインドする必要があり

class EditData extends Component { 
    constructor(props) { 
     super(props); 
     this.handleChange = this.handleChange.bind(this); 
     this.state = { 
      editData: '' 
     } 
    } 
    handleChange(e) { 
     this.setState({editData: e.target.value}) 
    } 

    save() { 
     if (this.state.editData.length !== 0) { 
      this.setState({isEditing: false}); 
      console.log(this.state.editData + 'Added on your database') 
     } else { 
      alert('Hahah Are you') 
     } 
     // console.log(this.refs.valTo.value); 
    } 
    render() { 
     return (
      <div> 
       <input onChange={this.handleChange} type="text" defaultValue={this.props.data} /> <button onClick={this.save}>Save</button> <button>cancel</button> 
      </div> 
      ); 
    } 
} 
+0

可能な複製を[ReactjsコンポーネントがSETSTATE後に再レンダリングされません](https://stackoverflow.com/questions/43717638/reactjs-component-does-not-再レンダリングアフターSETSTATE) –

答えて

5

をよりよく理解するためにコードです。あなたはコンストラクタでstateを初期化することを もチェック。コンストラクタで

は行いますの

this.handleChange = this.handleChange.bind(this); 
this.save= this.save.bind(this); 
this.state = {}; 
+0

さらに:https://facebook.github.io/react/docs/handling-events.html – imjared

関連する問題