Подтвердить что ты не робот

Что означает "компоненты функции без гражданства не могут быть даны"?

У меня есть это:

const ProjectsSummaryLayout = ({projects}) => {
   return (
      <div className="projects-summary col-md-10">
          <h3>Projects</h3>
          <ul>
              { projects.map(p => <li key={p.id}>{p.contract.client}</li>) }
          </ul>
      </div>
   )
}

const ProjectsSummary = connect(
   state => ({projects: state.projects})
)(ProjectsSummaryLayout)

и я получаю:

Предупреждение. Компонентам функции stateless не могут быть предоставлены refs (см. ref "wrappedInstance" в ProjectsSummaryLayout, созданный Connect (ProjectsSummaryLayout)). Попытки получить доступ к этой ссылке будут потерпеть неудачу.

Что он пытается сказать мне? Действительно ли я делаю что-то неправильно?

Я вижу обсуждение этого здесь, но, к сожалению, я просто не понимаю заключения.

4b9b3361

Ответ 1

В реакторе refs не может быть привязан к компоненту без гражданства.

Как я понимаю, React Redux 3 прикрепляет ref к компоненту, который вы даете ему независимо от того, является ли он безстоящим. Предупреждение, которое вы видите, происходит от React, потому что внутри React Redux 3 прикрепляет ref к предоставленному вам компоненту без состояния (ProjectsSummaryLayout).

Вы не делаете ничего плохого и, согласно этому комментарию GitHub, вы можете смело игнорировать предупреждение.

В React Redux 4 к обернутому компоненту по умолчанию добавлен ref, что означает, что если вы обновляете до React Redux 4, предупреждение должно исчезнуть.