ストレージに文字列があり、ストレージ内のキーを削除する削除ボタンを作成したいと思います。私の問題は、私がflatListにいて、それを機能させることができないということです。
async removeItemValue(key) {
try {
await AsyncStorage.removeItem(key);
return true;
}
catch(exception) {
return false;
}
}
render() {
return (
<View style={styles.container}>
<View>
<FlatList
data={this.state.imgData}
renderItem={({item}) =>
<View style={{flex: 1, alignItems: "center", justifyContent: "center", marginBottom: 20, borderBottomColor:"white", borderBottomWidth:1}}>
<Text>{item.date}</Text>
<Image style={{width: 300, height: 350}} source={{ uri: item.key }} />
<TouchableOpacity style={styles.menuButton} onPress={this.removeItemValue(item.key)}>
<Text>Delete</Text>
</TouchableOpacity>
</View>
}
/>
</View>
</View>
);
}}
ボタンがクリックされたときだけでなく、このページが読み込まれたときにtouchableOpacityのOnPressメソッドが呼び出される理由も説明していただけますか?
送信する小道具を(矢印)関数として定義すると機能するはずです。
onPress={() => this.removeItemValue(item.key)}
このような小道具を送ると...
onPress={this.removeItemValue(item.key)}
...その後、関数を送信しなくなりますが、関数this.removeItemValue(...)が返す値です。関数は、コンポーネントに渡す前に実行されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加