博览会:重新渲染平面图

时间:2019-09-12 14:26:23

标签: react-native expo react-native-flatlist

早上好, 实际上,按一下按钮修改值后,我在重新呈现平面列表时遇到麻烦。

场景是帐户详细信息页面,需要通过按图标来修改信息。

//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>);
        }

    }

有什么建议吗? 也许我没有做正确的步骤。 谢谢

0 个答案:

没有答案