2017-06-04 44 views
0

我想要做的是,將輸入字段值存儲到狀態,然後,如果用戶單擊保存按鈕或存儲按鈕,則輸入字段將消失,因此編輯將是錯誤的。我試圖在用戶點擊保存按鈕時檢查狀態長度。問題在那裏。這是說這個錯誤:Uncaught TypeError: Cannot read property 'state' of null,但我已經在editData狀態存儲數據爲什麼請你能告訴我嗎?狀態在ReactJS中無法正常工作

這裏是代碼更好地瞭解

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-重新渲染 - 設置後狀態) –

回答

5

您需要綁定handleChangesave。 還請檢查您是否在構造函數中初始化了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

相關問題