Вложенные условные операторы в React: как уменьшить количество элементов, если оно больше нуля? - PullRequest
1 голос
/ 16 октября 2019

Новичок здесь! Я хочу уменьшить количество единиц товара при нажатии кнопки, только если количество больше нуля.

В более ранней версии моей функции допускались отрицательные количества.

decrementItem = (id) => {
    let itemList = this.state.itemList.map(item => {
      item.id === id && item.count--
      return item
      });
    this.setState({
      itemList: itemList
    })
  }

Какможно ли лучше всего вложить эти условные операторы (item.id === id и item.count > 0) перед уменьшением суммы (item.count--)?

decrementItem = (id) => {
    let itemList = this.state.itemList.map(item => {
      item.id === id ? (item.count > 0 && item.count--) : null
      return item
      });
    this.setState({
      itemList: itemList
    })
  }

Этот блок кода возвращает эту ошибку:

Expected an assignment or function call and instead saw an expression

1 Ответ

2 голосов
/ 16 октября 2019
decrementItem = (id) => {
    let itemList = this.state.itemList.map(item => {
      item.id === id && (item.count > 0) && item.count-- 
      return item
      });
    this.setState({
      itemList: itemList
    })
  }
...