Я настроил пару полей ввода, где значение входит в объект input
, и я пытаюсь сохранить его в новом объекте с другими данными, но значение исчезает.
В моей handleSubmit
функции у меня есть setNewData(mediaArray)
, где он просто устанавливает mediaArray в новое состояние, которое работает корректно, но если я обертываю mediaArray в объект: setNewData({mediaArray})
, он стирает данные , Почему он это делает?
В конечном итоге я пытаюсь сделать это: setNewData({...setSomeOtherInfo, mediaArray})
, чтобы я мог получить это:
newData = {
info: '',
description: '',
mediaArray: [
{
input1: '',
input2: '',
},
{
input1: '',
input2: '',
},
{
input1: '',
input2: '',
},
]
}
Компонент:
const Screen = props => {
const [someOtherInfo, setSomeOtherInfo] = useState({
info: '',
description: ''
});
const [mediaArray, setMediaArray] = useState([]);
const [newData, setNewData] = useState(null);
const [input, setInput] = useState({
input1: '',
input2: ''
});
const handleInput1 = (index, value) => {
mediaArray[index] = {
...mediaArray[index],
['input1']: value,
};
};
const handleInput2 = (index, value) => {
mediaArray[index] = {
...mediaArray[index],
['input2']: value,
};
};
const handleSubmit = () => {
setNewData(mediaArray);
};
useEffect(() => {
}, [newData]);
return (
<View>
<TextInput onChangeText={e => handleInput1(index, e)} value={input.input1} />
<TextInput onChangeText={e => handleInput2(index, e)} value={input.input2} />
</View>
);
};
export default Screen;