У меня есть компонент, который отправляет некоторые действия при изменении состояния где-либо еще в приложении. Но это как-то дает мне страшную ошибку change in the order of Hooks
.
При чтении правил хуков говорится, что в основном обертка хуков в условных выражениях является верботенской ... Что я сейчас не делаю.
Однако я отображаю списки элементов, и значения этих списков изменяются, поскольку сервер загружает данные. Использование селекторов и redux-sagas делает все это практически невозможным для отладки, так как еще я могу отследить root проблемы?
У меня есть один компонент:
const PhraseList = props => {
const trainingPhrases = useSelector(selectFilteredPhrases());
return (
<div className={styles.Wrapper}>
<ul className={opStyles.listReset}>
{
trainingPhrases.map((phrase, idx) => {
return PhraseItem({ phrase, idx });
})
}
</ul>
</div>
);
который вызывает компонент PhraseItem
, который выдает ошибку.
const PhraseItem = ({ phrase, idx }) => {
// this line chokes
const [checked, setChecked] = useState(false);
return (
<li key={"tr-" + idx}>
<div className={styles.container}>
<div className={styles.phraseText}>{phrase.text}</div>
</div>
</li>
);
};
Я отлаживаю изменения в селекторе (фабрике селектора), и это то, что, кажется, вызывает приложение к sh.
export const selectFilteredPhrases = () =>
createSelector(trainingPhrases, phraseFilter, (trainingPhrases, phraseFilter) => {
console.log('trainingPhrases', trainingPhrases)
return trainingPhrases
});
но если данные никогда не менялись, трудно создать приложение: O
Я видел ответ об использовании JSX , который я не делаю думаю актуально. И больше ничего по этому вопросу.
redux, sagas, hooks, селекторы ... реакция DSL - это все больше и больше слоев, и в глубине фреймворка трудно отлаживать.
UPDATE. Я думаю, что может быть потому, что я вызываю две саги одна за другой, и это вызывает какое-то состояние гонки в интерфейсе?
const pickIntent = () => {
dispatch(pickIntentAction(intentId));
dispatch(getIntentPhrasesAction(intentId));