#reactjs
Вопрос:
Текстовое поле не работает, я хочу увеличивать и уменьшать значение текстового поля при увеличении и уменьшении, И когда я нажимаю кнопку AddToCart, я хочу, чтобы это входное значение текстового поля также вместе с кнопкой addtocart элементов(объектов)
value
и defualtValue
реквизит не работает
<Button onClick={() => decrement(items.id)}>Decrement</Button>
<TextField value={items.quantity}/>
<Button onClick={() => decrement(items.id)}>Increment</Button>
<Button onClick={() => addTocart(items)}>Add to cart</Button>
у предметов есть предмет { id: 4, productname: 'Grapes', price: 100, quantity: 1 }
const addToCart = (newItem) => {
want input value and item object
}
Комментарии:
1. Пожалуйста, объявите переменную «элементы» в качестве переменной состояния. Поэтому, когда «элементы» изменены, используйте функцию setItems.
2. Объявите переменную
items
состояния с помощьюuseState
крючка или переменной класса.3. Что и было
items
заявлено? Можете ли вы поделиться более подробным примером кода?4. const allProducts=[ { id:1, имя_продукта:’Яблоко’,цена:100,количество:1} { id:2, имя_продукта:’Вишня’,цена:70,количество:1} { id:3, имя_продукта:’Апельсин’,цена:60,количество:1} { id:4, имя_продукта:’Виноград’, цена:69,количество:1} ] const [штат, отправка] = Пользователь (редуктор, все продукты) { state.map(товар=>(
5. Можете ли вы поделиться своей
reducer
функцией и создателямиincrement
иdecrement
действиями? Значение текстового поля будет обновляться до тех пор, пока вы правильно обновляете состояние. Можете ли вы уточнить, что вы хотите, когда нажмете кнопку «добавить в корзину»? Ваш вопрос касается увеличения/уменьшения количества элементов или добавления нового элемента в ваше состояние? Можете ли вы «провести» нас через свой пользовательский интерфейс/UX и что должно произойти, когда и по какой причине?
Ответ №1:
Пожалуйста, используйте этот код.
const [items, setItems] = React.useState({id:4, productname:'Grapes', price:100, quantity:1});
...
<Button onClick={()=>setItems({...items, quantity: items.quantity - 1})} > Decrement</Button>
<TextField value={items.quantity}/>
<Button onClick={()=>setItems({...items, quantity: items.quantity 1})} > Increment</Button>