У меня есть несколько переключателей (около 40 до 70) в компоненте в зависимости от количества строк, выбранных из базы данных. Я отображаю каждый переключатель с каждой строкой в плоском списке (каждому элементу присваивается идентификатор). В конце я хочу отправить все значения и сохранить их в базе данных вместе с идентификатором и, соответственно, соответствующим статусом переключателя (true / false).
Я хочу сделать это как форму в HTML где мы получаем все значения формы после отправки формы.
Это компонент, в котором отображается плоский список. Я удалил ненужный код, потому что я могу отображать плоский список без каких-либо ошибок и предупреждений.
const [stData, setStData] = useState([]);
useEffect(()=> {
// Here I am fetching data from server using axios
// setStData(fetchedData);
})
<View>
<FlatList
data={stData}
keyExtractor={(item) => item.registration_id}
renderItem={(stData) => (
<ListItem
name={stData.item.name}
registrationNo={stData.item.registration_id}
data={stData}
isPresent={stData.item.isPresent}
setData={setStData}
/>
)}
/>
Это компонент ListItem
<View>
<View>
<Text>{props.name}</Text>
<Text>{props.id}</Text>
</View>
<Switch
trackColor={{ true: "red" }}
thumbColor={"white"}
onValueChange={() =>
props.setData(
props.data.map((item) =>
item.registration_id === props.registrationNo
? { ...item, isPresent: !props.isPresent }
: item
)
)
}
value={props.isPresent}
/>
</View>
Обновление Сейчас всякий раз, когда я пытаюсь переключить кнопку переключения, TypeError: undefined не является функцией (рядом с '... props.data.map ...') * происходит 1014 *.