読者です 読者をやめる 読者になる 読者になる

理性捨てて props 全部渡していたら react-router でハマった

react-router で遷移先のコンポーネントに props を渡すには React.cloneElement を使う。

tnakamura.hatenablog.com

このとき、理性捨てて

this.props.children && React.cloneElement(this.props.children, this.props)

という風に props をまるごと渡していたら、 Route を二段入れ子にしていた場合に children を上書きしてしまうみたいで、 コンポーネントの描画が再起しまくって死亡した。

this.props.children && React.cloneElement(this.props.children, {
  users: this.props.users,
  posts: this,props.posts,
})

みたいにして children は除外しないとダメ。