Фактическое поведение:
Я загружаю динамическую форму в FlatList и должен добавить несколько строк с TextInputs на основе условия. Например, у меня есть флажок. Когда я проверяю флажок, я должен добавить раскрывающийся список и два TextInputs, и когда я снимаю флажок, я должен удалить эти три. Моя проблема заключается в том, что, когда я устанавливаю флажок и ввожу какое-либо значение в TextInputs и снимаю флажок, тогда значение в последнем TextInput присваивается другому TextInput, который не связан с этими условиями.
Ожидаемое поведение:
Последнее значение TextInput не должно присваиваться другому TextInput, который не связан с условиями флажка при снятии флажка. Пожалуйста, предложите. Заранее спасибо.
Дополнительные ресурсы:
Вот мой код для TextInput:
_onChangeText(e, item, index) {
console.log("abc123 ", item);
let count = "false";
let note;
if (this.state.inputsValues.length === 0 && item.blocks.question !== undefined) {
if (item.blocks.question.prompt !== "Notes") {
note = {
note: e.nativeEvent.text.replace(/\n/g, ''),
id: item.blocks.question.prompt
};
} else {
note = {
note: e.nativeEvent.text.replace(/\n/g, ''),
id: item.blocks.block_pos
};
}
this.setState({ inputsValues: [...this.state.inputsValues, note] }, () => {
console.log("length === 0", this.state.inputsValues);
});
} else {
this.state.inputsValues.map((res, idx) => {
if (item.blocks.question !== undefined && res.id === item.blocks.question.prompt) {
res.note = e.nativeEvent.text.replace(/\n/g, '');
count = "true";
}
});
if (count === "false") {
if (item.blocks.question.prompt !== "Notes") {
note = {
note: e.nativeEvent.text.replace(/\n/g, ''),
id: item.blocks.question.prompt
};
} else {
note = {
note: e.nativeEvent.text.replace(/\n/g, ''),
id: item.blocks.block_pos
};
}
this.setState({ inputsValues: [...this.state.inputsValues, note] }, () => {
// console.log("gvrtgrtgt", this.state.inputsValues);
});
}
}
}
<NBTextField
itemStyles={[styles.itemStyles, { height: width / 6 }]}
value={inputsValues[index] !== undefined && inputsValues[index].note}
onEndEditing={e => this._onChangeText(e, item)}
onChangeText={this.getInputValue}
onSubmitEditing={() => Keyboard.dismiss()}
inputStyles={[styles.inputStyles, { height: width / 6 }]}
placeholder="Enter here"
/>
Среда:
реагировать-нативный: 0.61.1
Снимок экрана: