警告:React NativeのマウントされていないコンポーネントでsetState(またはforceUpdate)を呼び出すことはできません

crodev

完全なエラー画像:エラー画像

フェッチ要求を行っていますが、発生するエラーを保存するために状態を設定したい場合。これを修正するにはどうすればよいですか?

コード:

    onClickLogIn = (username, password) => {
    const request = fetch('[SOMEAPILINK]', {
    method: 'POST',
    headers: {
        Accept: 'text/javascript',
        'Content-Type': 'text/javascript',
    },
    body: JSON.stringify({
        username: username,
        password: password,
        login: 1
    })
    }).then(response => response.json()).then(responseJson => {   
        console.log(responseJson)
        this.setState({
            errorCheck: responseJson.error
        })
    }).catch(error => {
        console.log("error")
    })
    // console.log(errorCheck);
    console.log(request); 
    console.log("----ERROR CHECK ----")
    console.log(this.state.errorCheck)
    this.props.navigation.navigate("Second")

}

だから私がerrorCheckを設定したいときそのエラーが入ってくる...

ありがとう!

ジェイ・サムマー
then(response => response.json()).then(responseJson => {   
    console.log(responseJson)
    this.setState({
        errorCheck: responseJson.error
    })
    this.props.navigation.navigate("Second")
})

=>メソッドthis.props.navigation.navigate("Second")にこのナビゲーションコード追加してthen()、更新後にナビゲーションを呼び出すようにするとstate、エラーがなくなります。

=>オブジェクトではなくstateusingsetState 関数を更新しみてください。

    this.setState(function (prevState, props) {
        return { errorCheck: responseJson.error}
    })

オブジェクトが状態を更新するのにかかる時間を短縮します。

=>コードは次のようになります

  then(response => response.json()).then(responseJson => {   
    console.log(responseJson)
    this.setState(function (prevState, props) {
        return { errorCheck: responseJson.error}
    })
    this.props.navigation.navigate("Second")
})

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ