Как L oop массив с использованием функции карты на основе условия и затем setState? - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу иметь такую ​​же функциональность, используя функцию карты. Вот мой код:

async componentDidMount() {
const data = await TodoAPI.getTodo();
      for(var i=0;i<data.response.length;i++)
      {
        if(data.response[i]._id === this.props.match.params.id)
            {
                this.setState({
                todo_description: data.response[i].todo_description,
                todo_responsible: data.response[i].todo_responsible,
                todo_priority: data.response[i].todo_priority,
                todo_completed: data.response[i].todo_completed
                })
            }
      }
    }

1 Ответ

0 голосов
/ 05 февраля 2020

Я думаю, вы немного запутались, так как map() не будет полезным в этом случае. Он создает новый массив, но вы хотите (поправьте меня, если я ошибаюсь), чтобы найти элемент, поэтому find(), кажется, то, что вам нужно:

async componentDidMount() {
  const data = await TodoAPI.getTodo();
  const id = this.props.match.params.id;
  const item = data.response.find(item => item._id === id);
  this.setState(item);
}

...