Реагировать на собственное обновление TextField - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу заполнить поля ввода данными из базы данных и внести в них изменения. Когда я заполняю поля ввода, проблем нет, но когда я хочу редактировать, у меня проблемы. Данные имеют статус c и не зависят от какой-либо переменной. Как я могу решить эту проблему? Я поделился кодами ниже.

RN 0,62

Обновление кодов.

  const [banners, setBanners] = React.useState(null);

    React.useEffect(() => {
        Axios.post(props.GlobalStates.baseURL + "mobile/mobile_events.php", { request: "mobile", action: "getallbanners" }).then(response => {
            setBanners(response.data);
        })
    }, [])
    function changeBannerStatus(e, item) {
        Axios.post(props.GlobalStates.baseURL + "mobile/mobile_events.php", {
            request: "mobile",
            action: "editbanner",
            id: item.id,
            content: item.content,
            header: item.header,
            status: e
        }).then(response => {
            setBanners(response.data);
        })
    }
    function changeBannerHeader(e, index) {
        banners[index].header += e;
        setBanners(banners);
    }
    function changeBannerContent(e, index) {
        banners[index].content += e;
        setBanners(banners);
    }
    return (
        <Layout style={{ flex: 1 }}>
            <Header />
            <FlatList
                data={banners}
                renderItem={({ item, index }) =>
                    <Layout style={{ width: "95%", flexDirection: "column", padding: 15, borderWidth: 1, borderRadius: 10, margin: 10 }}>
                        <Layout>
                            <Switch
                                trackColor={{ false: "#767577", true: "#81b0ff" }}
                                thumbColor={item.status == 1 ? "#DD5347" : "#f4f3f4"}
                                ios_backgroundColor="#3e3e3e"
                                onValueChange={(e) => {
                                    changeBannerStatus(e, item);
                                }}
                                value={item.status == 1 ? true : false}
                            ></Switch>
                        </Layout>
                        <Layout style={{ justifyContent: "center", alignItems: "center" }}>
                            <Input value={item.header} onChangeText={(e) => {
                                changeBannerHeader(e, index)
                            }}>
                            </Input>
                        </Layout>
                        <Layout style={{ justifyContent: "center", alignItems: "center" }}>
                            <Input value={item.content} onChangeText={(e) => {
                                changeBannerContent(e, index)
                            }}>
                            </Input>
                        </Layout>
                        <Image source={{ uri: props.GlobalStates.baseURL + item.image }} style={{ width: "100%", height: 100 }}></Image>
                    </Layout>
                }
                keyExtractor={item => item.id}
            />
        </Layout>

    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...