早上好, 实际上,按一下按钮修改值后,我在重新呈现平面列表时遇到麻烦。
场景是帐户详细信息页面,需要通过按图标来修改信息。
//Data come from a firebase
<View style={style.container} >
<FlatList
data={[
{ data: JSON.parse(JSON.stringify(this.state.Account)).name, key: 'nome' },
{ data: JSON.parse(JSON.stringify(this.state.Account)).cognome, key: 'cognome' },
{ data: JSON.parse(JSON.stringify(this.state.Account)).mail, key: 'mail' },
]}
extraData={this.state}
keyExtractor={(item, index) => item + index}
width='100%'
ItemSeparatorComponent={this.FlatListItemSeparator}
// renderItem={({ item }) => <Text style={style.txt}>{item.key}</Text>}
renderItem={this.modifyFlat}
/>
</View >
....
modifyFlat = (item) => {
switch (item.item.key) {
case 'nome':
return (
<View style={style.containerFlat}>
<View style={style.cont_flat_row}><Text style={style.txt}>NOME : </Text></View>
<View style={style.cont_flat_row}><Text style={style.txt}>{item.item.data} </Text></View>
<View style={style.cont_flat_row}><TouchableOpacity style={{ alignSelf: 'center' }} onPress={() => this.modifica_dati(item.item)}>
<Text style={style.contIcon}><Icon name="edit" style={style.icona_modifica}></Icon></Text>
</TouchableOpacity></View>
</View>
)
}
}
// HERE I WANT CHANGE FROM A TEXT TO TEXTINPUT
modifica_dati = (item) => {
if (item.key == 'nome') {
console.log("HERE IS OK !!! ")
return (
<View style={style.containerFlat}>
<View style={style.cont_flat_row}>
<TextInput
style={style.textbox}
placeholder={item.data}
onChangeText={(text) => this.updateValue(text, 'new_cognome')}>
</TextInput>
</View>
</View>);
}
}
有什么建议吗? 也许我没有做正确的步骤。 谢谢