2016-12-08 11 views
2

ReactJSで簡単なことをしている間、 "TypeError:プロパティ 'setState'が未定義です"というエラーが表示されます。私は応答データで入力を埋めるためにAxiosを使用しようとしています。これまでのところ成功していない。 私はAxiosとReactJの両方にとても新しいので、見落としたことがあるかもしれません。Axios ReactJS - 未定義のプロパティ 'setState'を読み取ることができません

TypeErrorが修正された後、フォームの入力フィールドに「応答テキスト」が表示されると思います。

この

は私のコンポーネントです:

class BasicInfoBlock extends React.Component { 

constructor(props) { 
    super(props); 

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

componentDidMount() { 
    axios 
    .get(getBaseUrl()+`get`) 
    .then(function (response) { 
     this.setState({name: "RESPONSE TEXT"}); 
     //this.setState({name: response.data.name}); 
    }) 
    .catch((e) => 
    { 
     console.error(e); 
    }); 
    //this.setState({}); 
} 


render(){ 
    return(
      <form className="form-horizontal"> 
       <div className="form-group"> 
        <label htmlFor="eventName" className="col-sm-2 control-label">Name</label> 
        <div className="col-sm-10"> 
        <input type="text" id="eventName" className="form-control" placeholder="Event name" defaultValue={this.state.name}/> 
        </div> 
       </div> 
      </form> 
     ); 
} 

}

はあなたの助けをありがとう

編集:これは重複問題ではない、この質問には、「これは」で利用可能ではないに関し、折り返し電話。重複として選択された質問はバインドに関連しています。

+1

の可能性のある重複した[キャッチされない例外TypeError:未定義のプロパティ「SETSTATE」を読み取ることができません](http://stackoverflow.com/questions/32317154/uncaught-typeerror-あなたは、このような矢印の機能を使用することによって解決することができcan not-read-property-setstate-of-undefined) –

+1

問題は、コールバック関数内の 'this'のコンテキストです。 –

+0

重複していない、読み込み編集 – rluks

答えて

9

プロミスの方法では、thisはコンポーネントを参照しなくなります。

componentDidMount() { 
    axios 
    .get(getBaseUrl()+`get`) 
    .then((response) => { 
    this.setState({name: "RESPONSE TEXT"}); 
    //this.setState({name: response.data.name}); 
    }) 
    .catch((e) => 
    { 
    console.error(e); 
    }); 
    //this.setState({}); 
} 
+0

ありがとうございます、エラーはなくなりました。しかし、私の入力フィールドはまだ "応答テキスト"で埋められていないと私は理由を知りません。 – rluks

+1

@rluks 'default'値ではなく、' value' propを設定する必要があります。 Reactが投げる警告をスケルチするには、 'this.state.value'を空文字列で初期化することができます。 – Bojangles

+0

値ではなく、prop defaultValueを設定します。デフォルト値は、setStateを呼び出すときではなく、最初はマウント時にのみ設定されます。制御されたコンポーネントに関するReactドキュメントを読むことをお勧めします。 –

関連する問題