Я хочу заполнить поля ввода данными из базы данных и внести в них изменения. Когда я заполняю поля ввода, проблем нет, но когда я хочу редактировать, у меня проблемы. Данные имеют статус 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>
);