46

私はこれを持っています:

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)

そして私は得る:

警告: ステートレスな関数コンポーネントに参照を与えることはできません (Connect(ProjectsSummaryLayout) によって作成された ProjectsSummaryLayout の参照 "wrappedInstance" を参照してください)。この参照にアクセスしようとすると失敗します。

それは私に何を伝えようとしているのですか?私は実際に何か間違ったことをしていますか?

ここでこれについての議論を見ていますが、残念ながら私は単に結論を理解していません。

4

2 に答える 2

29

React ではrefs、ステートレス コンポーネントにアタッチすることはできません

React Redux 3は、ステートレスであるかどうかに関係なくref、指定したコンポーネントにa をアタッチします。内部的に、React Redux 3 は、指定したステートレス コンポーネントに をアタッチするため、表示される警告は React からのものです ( )。refProjectsSummaryLayout

あなたは何も悪いことをしていません。この GitHub コメントによれば、警告を無視しても問題ありません。

React Redux 4では、ラップされたコンポーネントにデフォルトで norefがアタッチされています。つまり、React Redux 4 にアップグレードすると、警告が消えるはずです。

于 2016-03-12T02:32:21.877 に答える