#javascript #node.js #reactjs #react-redux #react-hooks
Вопрос:
Вот мой код:
Реагировать на код JS:
class Item extends React.Component{
constructor(props){
super(props);
this.state = {
product: [
{
id: 0,
name: "Name",
price: "Quantity",
productIngredient: {
id: 0,
name: "Ingredient Name",
unit: "Unit(s)",
quantity: "Quantity",
},
},
],
};
}
}
export default Item;
Мой Вопрос:
В React я хочу задать состояние, как установить объект productIngredient, который находится в состоянии ? Мой основной вопрос заключается в том, как задать состояние вложенного объекта в React ?
Комментарии:
1. Какое отношение бэкэнд Java имеет к настройке состояния в react?
Ответ №1:
Я обычно делаю это с чем-то вроде:
setProductIngredient = ( productIngredient, ix ) => {
const { product } = this.state
product[ ix ].productIngredient = productIngredient
this.setState( { product } )
}
Если у вас нет индекса, вы можете использовать методы поиска или индексирования, чтобы получить правильный элемент массива.
Ответ №2:
Hy, если вы хотите получить и заполнить свое состояние с помощью вызова api, вам нужно использовать componentdidmount() https://reactjs.org/docs/react-component.html#componentdidmount.
Я рекомендую вам использовать последнюю версию React с крючками (это проще в использовании). Если вы используете хуки, вам необходимо использовать функцию useEffect (), чтобы выполнить вызов api. Внутри этой функции вы можете заполнить свой хук useState. Док слушает.
Вот полный пример вызова api внутри функции useEffect(). Пример здесь.