React Hooks: Проверьте, существует ли объект JSON в useState, и добавьте, если он не создан, и добавьте его к нему? - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть компонент <Day/>, который, естественно, является потомком компонента <Calendar/>;

<Day/> имеет dayInfo проп. На данный момент я пытаюсь преобразовать данные event.target.computedName, которые я получаю при нажатии на календарь, и передать их компоненту дня следующим образом: <Day dayInfo={event.target.computedName}/>

  event.target.computedName === 'April 9, 2020'

Оттуда я бы хотел преобразовать его в JSON объект и затем pu sh в состояние / массив в компоненте дня:

var [dayCollection, setDayInCollection] = useState([]);

So April 9, 2020 becomes:

dayCollection = [
  "April-9-2020" : {} // a JSON object awaits some data about the day!!!
]

Итак, это мой компонент Day:

export default function Day({ dayInfo }) {
  var [dayCollection, setDayInCollection] = useState([]);

  useEffect(() => {
    console.log('dayInfo ', dayInfo);
    if (!dayInfo in dayCollection) {
      setDayInCollection(
        dayCollection.concat(
          JSON.parse(
            JSON.stringify(
              dayInfo
                .split(' ')
                .map((item) => {
                  if (item.indexOf(',')) return item.replace(/,/g, '');
                })
                .join('-')
            )
          )
        )
      );
    } else {
      console.log('do nothing');
    }
  }, [dayCollection]);

  console.log('dayCollection ', dayCollection);
  /* rest omited for brevity */
}

I Полагаю, у меня есть преобразование «9 апреля 2020 года» в «9 апреля 2020 года», как я его записал, но проверка состояния dayCollection / непрерывно дает []

Так как же Я проверяю, существует ли этот объект JSON в состоянии компонента Day, и добавляю его, если он не создает объект JSON, и конкатирую его в состояние?

Заранее спасибо!

...