#reactjs #react-hooks
#reactjs #реагирующие крючки
Вопрос:
Я пытаюсь установить массив в список объектов в useState. Как это сделать?
const [ingredients, setIngredients] = useState([])
const [recipe, setReceipe] = useState({title : "", description: "", receipeIsPrivate : isPrivate, ingredients: '', directions : ''})
setReceipe(...recipe, [ingredients] : ingredients)
когда я регистрирую список рецептов, я получаю массив с пустой строкой. Заранее благодарю вас.
Ответ №1:
setReceipe — это постоянная функция, которую вам нужно вызвать, в настоящее время вы пытаетесь переназначить ее с помощью оператора = (что невозможно, поскольку это константа)
т.е.
setReceipe(... recipe, [ingredients]: ingredients)
Комментарии:
1. Извините, это была ошибка на этом форуме с моей стороны. я попробовал setReceipe(…receipte, [ингредиенты] : ингредиенты) и setReceipe({…receipte, ингредиенты: ингредиенты}) . Оба, которые я пробовал, не сработали. В первом я получаю ошибку синтаксического анализа, ожидается, что выражение приведения типа будет заключено в круглые скобки. И второй пример, который я привел, без ошибок, я зарегистрировал его, и он отобразил ингредиенты: [«»]
2. Ах, хорошо, в этом случае другая вещь, которую я замечаю, это то, что вы распространяете рецепт непосредственно в вызов setRecipe, вместо того, чтобы распространять его в объект, т.Е. setRecipe({…recipe, ingredients}) — это может быть вашей проблемой