Это устаревший реквизит / зомб ie ребенок? - PullRequest
0 голосов
/ 06 марта 2020

Проблема, с которой я сталкиваюсь, присутствует только в сокращенном / скрытом / перенесенном коде, поэтому я не могу легко воспроизвести здесь. У него также могут быть некоторые расовые условия.

У меня есть такая структура в моем приложении

const App = ({}) => {
  const contextParam = get(match, 'params.contextValue');
  return (
    <SomeContext.provider value={contextParam}>
      <UsesContext />
    </SomeContext>
  );
};

И мой компонент <UsesContext /> таков:

export const UsesContext = () => {
  const paramFromSelector = useSelector(getParam);
  const param = useContext(SomeContext) || paramFromSelector;
  return (
    <div>
      {param ? <ParamComponent param={param} /> : <StaticComponent />}
    </div>
  )
}

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

Функция getParam - это просто const getParam = state => state.some.nested.value.

Без переноса / минификации с использованием babel и веб-пакета, это никогда не сможет правильно выбрать компонент. При работе в нашей среде разработки я вижу что выглядит как устаревшее значение, возвращаемое селектором.

Быстрый Google выводит Stale Props и "Zomb ie Children ", но похоже, что это происходит только в том случае, если существуют реквизиты, которые могут измениться, что не влияет на нашу настройку, поскольку у нас нет реквизита.

Может ли это быть проблемой с зомби / устаревшей или возможно что-нибудь еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...