Показать сообщение отдельно
  #4 (permalink)  
Старый 20.01.2019, 22:20
Интересующийся
Отправить личное сообщение для dmitry.suhotsky Посмотреть профиль Найти все сообщения от dmitry.suhotsky
 
Регистрация: 16.11.2018
Сообщений: 10

Вопрос 2.
Пытаюсь обновить данные следующим способом

saveItem = (text,phone,id) => {
    let NewArr = this.state.mobile;
    NewArr = NewArr.map(el => {
      if (el.id === id) {
        el.name = text;
        el.phone = phone
      }
      return NewArr;
    })
    this.setState({
      mobile: NewArr,
      read: false
    })
    // const newItem = {
    //   id: id,
    //   name: text,
    //   phone: phone
    // }
    // let NewArray = this.state.mobile.filter(el => el.id === id);
    // NewArray = newItem;
    // const NewMobile = this.state.mobile;
    // NewMobile[index] = NewArray;
    // this.setState({
    //   mobile: NewMobile
    
    // })
  }

Первым способом ошибка, в масиве NewArr - там появляется в каждом NewArr[i] по два элемента стейта
Во втором закомментированном не знаю как найти индекс NewMobile[index]. Скорее всего в filter, по как передать наружу не получается
Ответить с цитированием