React Hook, как установить массив в список объектов контролируемым образом

#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}) — это может быть вашей проблемой