Запуск нескольких функций с map в react js

#javascript #reactjs

#javascript #reactjs

Вопрос:

я хочу выполнить синтаксический анализ массива в react js. Мой массив (он может меняться, но это пример

 [ "save", "save", "not", "save"]
 

По сути, я пытаюсь создать функцию, которая запускает другую функцию каждый раз, когда он видит «сохранить».

Прямо сейчас у меня есть

  check(el) {
    if (el === "save")
    this.onSave()
    if (el === "not")
    this.onNot()
  }

  componentWillMount() {
    var map_take = JSON.parse(localStorage.getItem("tests"));
    {_.map(map_take, el => this.check(el))}
}
 

Но моя главная проблема заключается в том, что когда я запускаю свою программу, он выполняет один раз, а после уходит. Я хотел бы знать, возможно ли создать функцию, которая запускает другую функцию X раз, а не только для первого элемента моего массива.

Комментарии:

1. Я не совсем уверен, что вам нужно, вы просите вызывать функцию проверки каждый раз, когда localStorage обновляется?

2. @AntonioErdeljac извините, я не очень понимаю, я просто хочу вызывать свою функцию OnSave каждый раз, когда у меня есть «save», а мою функцию «onNot» каждый раз, когда у меня нет на моей карте, и моя проблема в том, что прямо сейчас моя функция OnSave () вызывается только один раз

3. Вам действительно нужен этот.onNot()? Что он делает?

Ответ №1:

Мне кажется, у вас есть некоторые ненужные сложности в вашем коде. Попробуйте что-то вроде этого:

 
componentDidMount() { // componentWillMount is deprecated
  const tests = JSON.parse(localStorage.getItem("tests"));

  tests.forEach((test) => {
    console.log(test); // this should fire 4 times with results like "save" or "not" just to check if everything is allright

    if (test === 'save') {
      this.onSave();
    } else if (test === 'not') {
      this.onNot()
    }
  })
}