Реакция ленивых детей - PullRequest
       53

Реакция ленивых детей

0 голосов
/ 04 декабря 2018

Взгляните на этот простой пример:

 const List = function({ loading, entity }) {
    return (
        <Layout loading={loading}>
            <span>Name: {entity.name}</span>
        </Layout>
    );
};

Layout компонент отображает свой children, только когда loading равен false.Но проблема в том, что React решает Layout детей немедленно.Поскольку entity равно null (в то время как loading=true), я получаю ошибку, что он не может прочитать name из null.Есть ли простой способ избежать этой ошибки, поскольку этот span всегда будет отображаться, когда entity не null?

В настоящее время я знаю о 3 вариантах:

  1. Переместите это span в stateless function, которое получает entity как prop
  2. Обернуть целиком children из Layout в function и затем поддерживает function children в Layout
  3. Просто используйте {entity && <span>Name: {entity.name}</span>}

Почему я должен использовать одну из этих опций и могу ли я сделать React, чтобы рассмотреть эти children как функцию и разрешить блок внутри позже, дорендеринг?

...