#reactjs
#reactjs
Вопрос:
Я пытаюсь добавить переменную состояния props.addremoveDatabase (из другого компонента, следовательно, почему используется props) в конец массива newState. Однако это не работает, и я не уверен, почему, поскольку я пытался использовать для этого метод push.
Ошибка:
const [addRemoveDatabase, setAddRemoveDatabase] = useState([
'iadcaprod.auiag.corp/iadpprod',
]);
const [productionDatabaseData, setProductionDatabaseData] = useState([]);
const addToProduction = ({target}, {id, databases}) => {
setProductionDatabaseData((previousState) => {
let newState = [...previousState];
if (target.checked) {
newState = [
...newState,
{unit_test_id: id, databases: databases.push(props.addRemoveDatabase)},
];
} else {
const i = newState.findIndex(({unit_test_id}) => unit_test_id === id);
if (i !== -1) newState.splice(i, 1);
}
return newState;
});
};
Ответ №1:
Хммм, вы используете объекты. Правильно?
databases.push(props.addRemoveDatabase)
newState = [
...newState,
{unit_test_id: id, databases: [...databases]},
];
Комментарии:
1. Да, это правильно, однако, похоже, работает. Он возвращает длину только тогда, когда я попробовал этот код? Я только что обновил свой ответ, чтобы вы могли видеть
2. все еще неправильные databases.push(props.addRemoveDatabase)
3. В моем ответе я меняю его на databases: databases.push(props.addRemoveDatabase)
4. Да, я изменил его, но он возвращает длину обратно, а не имя массива
5. Обновил мой ответ