Проверьте, является ли компонент дочерним по отношению к другому в React

У меня есть следующая ситуация, когда мне нужно сделать некоторую логику (например, позиционировать детей по отношению к родителю и т. Д.).

Есть ли способ, чтобы родительские дочерние отношения в React между вложенными компонентами могли ссылаться друг на друга?

Например:

  <Surface color="red" size={100}
    <h1>HELLO</h1>

    <Surface color="black" size={50}>
      <h1>World</h1>
    </Surface>
  </Surface>

Так как вложенные Surface находится внутри другого SurfaceЯ хотел бы, чтобы ребенок был подключен (или какая-то другая логика) к родителю. Я знаю, что могу просто пройти от корня и построить это дерево, где, если Поверхность упаковывает другую Поверхность как дочерний элемент, то выполняет логику, которую я ищу, но это кажется довольно ужасным...

Есть идеи? Спасибо!

2 ответа

Я думаю, что вы можете использовать псевдоним родительской поверхности, используя "ref", а затем получить к нему доступ в дочерней поверхности.

Но не рекомендуется использовать "ref" в методе рендеринга класса. Вы можете определить любой публичный метод в ваших классах компонентов и вызывать их через ссылки. В большинстве случаев проще использовать встроенный поток данных React вместо обязательного использования ссылок.

Надеюсь, поможет.

Вы можете использовать response-redux, который является лучшим способом управления вашими компонентами в централизованном месте, известном как магазин. Вы можете найти пример реакции-редукса

Другие вопросы по тегам