AsyncStorageでsetItem
にアクセスできません。以下は私のコードです。だから私はTextInput
から州の名前を得て、それをAsyncStorage
onPress
のTouchableOpacity
に保存したいと思います。私はエラーを取得しています:AsyncStorageにsetItemを設定できません
import React, { Component } from 'react';
import { View, Text, StyleSheet, TextInput, TouchableOpacity} from 'react-native';
class AsyncStorage extends Component {
constructor(props) {
super(props);
this.state = {
name:''
}
//this.asyncSetName = this.asyncSetName.bind(this) //tried this too.
};
asyncSetName(){
let name = this.state.name
AsyncStorage.setItem('name', name);
}
render(){
<View>
<TextInput
placeholder='Set Name here'
onChangeText={(name) => this.setState({name})}
value={this.state.name}
autoCorrect={false}
></TextInput>
<TouchableOpacity
onPress={this.asyncSetName.bind(this)}
>
<Text>SetName</Text>
</TouchableOpacity>
</View>
}
}
私が間違って何をしているのですか?助けてください。あなたはまた、コメントを解除asyncSetName
機能
の結合このライン
this.asyncSetName = this.asyncSetName.bind(this)
を維持する必要があります
import { View, Text, StyleSheet, TextInput, TouchableOpacity , AsyncStorage} from 'react-native';
react-native
から
AsyncStorage
をインポートする必要が
ありがとうございます。この 'this.asyncSetName = this.asyncSetName.bind(this)'のようにコンストラクタ(小道具)で関数をバインドしなければならないのですか? 'onPress = {this.asyncSetName.bind(this)}'のように呼び出す必要があります。 なぜ2回バインドする必要がありますか? – Somename
あなたは大歓迎です...バインディングに関しては、一度バインドする必要があります。コンストラクタでバインディングを使用することをお勧めします –