Is it possible to remove the extra arrow function here?
まだ誰も着手していません。
- 主要言語
- JavaScript
- スター
- 11.8k
- フォーク
- 7.9k
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 11
説明
Hi!
The tutorial has an example like this:
class Square extends React.Component {
render() {
return (
<button
className="square"
onClick={() => this.props.onClick()}
>
{this.props.value}
</button>
);
}
}
This component used in the Board component like this:
renderSquare(i) {
return (
<Square
value={this.state.squares[i]}
onClick={() => this.handleClick(i)}
/>
);
}
We have closed the context in a function that we pass to onClick in the Board component.
But why don't we just pass this.props.onClick to onClick in the Square component? Why are we using closures here if we already have the right context inside?
I wrote like this: (link to codepen)
class Square extends React.Component {
render() {
return (
<button
className="square"
onClick={this.props.onClick}
>
{this.props.value}
</button>
);
}
}
This works successfully
It is clear that the variant from the tutorial will also work. But further it says:
When we modified the Square to be a function component, we also changed onClick={() => this.props.onClick()} to a shorter onClick={props.onClick} (note the lack of parentheses on both sides).
So my variation only works in a functional component? But above it also worked in class components. I think this might confuse some people.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、state のリフトアップと関数コンポーネントについて説明しているリンク先のチュートリアルのセクションを読み、次に 2 つの onClick の例と、それに付随する説明を比較します。クラスコンポーネントの例について、callback を渡す場合と呼び出す場合の違いを明確にする必要があるか確認します。チュートリアルで、両方の形式が機能する理由と、より短い形式が適切な場面が明確に説明されていれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, react
- 領域
- documentation
- issue の種類
- ドキュメント
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100