Почему вызов состояния redux внутри react-таблицы и передача его зависимости внутри useMemo () приводят к бесконечному циклу?

#javascript #reactjs #redux #react-table

#язык JavaScript #реагирует на #возвращение #реагировать-таблица

Вопрос:

Я беру выбранный идентификатор из других компонентов. По этому идентификатору я хочу взять массив с объектом, выбранным параметром useSelector. После того, как я передам его в useMemo (), он приведет к бесконечному циклу. Как передать его внутри useMemo, чтобы предотвратить бесконечный цикл

 export const Table = ({ selectedId }) =gt; {  console.log(selectedId);   let selected = useSelector((state) =gt; state.items.item).filter(  (e) =gt; e._id === selectedId  );   console.log(selected);   const data = useMemo(() =gt; [...selected], [selected]);  const columns = useMemo(  () =gt; [  {  Header: "Name",  accessor: "name",  },  {  Header: "Age",  accessor: "age",  },  ],   []  );   

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

1. Похоже, проблема в том, что здесь let selected = useSelector((state) =gt; state.items.item).filter((e) =gt; e._id === selectedId); он создает новый массив при каждом рендеринге. Поместите filter внутри селектора, вот так let selected = useSelector((state) =gt; state.items.item.filter((e) =gt; e._id === selectedId)); .чтобы получить заученную версию selected