У меня были проблемы с чем-то вроде этого (в частности, в атрибуте значения TextInput
):
const Stuff = props => {
const [items, setItems] = useState([]);
const handleNewItem = () => {
setItems([...items, '']);
};
const handleText = (text, index) => {
items[index] = text;
setItems(items);
// this was populating correctly in console.log
// as I type, it will come out like ["somedata", "blah"....] etc...
};
return (
<>
<View style={{marginTop: 20}}>
<View>
{items.map((items, index) => {
return (
<View key={index}>
<Text>{index + 1}</Text>
// issue with setting value attribute
// Text would disappear as I type in the input field
<TextInput value={items} onChangeText={text => handleText(text, index)} />
</View>
);
})}
<TouchableOpacity onPress={e => handleNewItem(e)}>
<Text>Add item</Text>
</TouchableOpacity>
</View>
</View>
</>
);
};
Мне удалось вывести из консоли правильные значения для items
, но на моем В мобильном симуляторе, когда я что-то печатаю, текст исчезает.
Когда я удалил value={items}
из компонента TextInput, я могу печатать в поле ввода симулятора, без исчезновения текста. Я всегда думал, что нам нужно значение от reactjs. Разве нам это не нужно? или я что-то не так делаю?