Skip to content

Commit 0454fdd

Browse files
committed
Fixes for PR code review
1 parent de34623 commit 0454fdd

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

โ€Žsrc/content/reference/react/useCallback.mdโ€Ž

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default function ProductPage({ productId, referrer, theme }) {
5151
#### ๆณจๆ„ไบ‹้ … {/*caveats*/}
5252
5353
* `useCallback` ใฏใƒ•ใƒƒใ‚ฏใงใ™ใฎใงใ€**ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใฎใƒˆใƒƒใƒ—ใƒฌใƒ™ใƒซ**ใพใŸใฏ็‹ฌ่‡ชใฎใƒ•ใƒƒใ‚ฏใงใฎใฟๅ‘ผใณๅ‡บใ™ใ“ใจใŒใงใใพใ™ใ€‚ใƒซใƒผใƒ—ใ‚„ๆกไปถใฎไธญใงๅ‘ผใณๅ‡บใ™ใ“ใจใฏใงใใพใ›ใ‚“ใ€‚ใใ‚ŒใŒๅฟ…่ฆใชๅ ดๅˆใฏใ€ๆ–ฐใ—ใ„ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‚’ๆŠฝๅ‡บใ—ใ€ใใฎไธญใซใใฎ็Šถๆ…‹ใ‚’็งปๅ‹•ใ•ใ›ใฆใใ ใ•ใ„ใ€‚
54-
* React ใฏใ€**็‰นๅฎšใฎ็†็”ฑใŒใชใ„้™ใ‚Šใ€ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ•ใ‚ŒใŸ้–ขๆ•ฐใ‚’็ ดๆฃ„ใ—ใพใ›ใ‚“ใ€‚** ใŸใจใˆใฐใ€้–‹็™บไธญใซใฏใ€ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใฎใƒ•ใ‚กใ‚คใƒซใ‚’็ทจ้›†ใ™ใ‚‹ใจ React ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ—ใพใ™ใ€‚้–‹็™บ็’ฐๅขƒใจๆœฌ็•ช็’ฐๅขƒใฎไธกๆ–นใงใ€ๅˆๅ›žใƒžใ‚ฆใƒณใƒˆๆ™‚ใซใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒไธ€ๆ™‚ๅœๆญขใ™ใ‚‹ใจใ€React ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ—ใพใ™ใ€‚ๅฐ†ๆฅ็š„ใซใ€React ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ™ใ‚‹ใ“ใจใ‚’ๆดป็”จใ—ใŸใ•ใ‚‰ใชใ‚‹ๆฉŸ่ƒฝใ‚’่ฟฝๅŠ ใ™ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚ไพ‹ใˆใฐใ€ๅฐ†ๆฅ็š„ใซ React ใŒไปฎๆƒณๅŒ–ใƒชใ‚นใƒˆใซๅฏพใ™ใ‚‹็ต„ใฟ่พผใฟใ‚ตใƒใƒผใƒˆใ‚’่ฟฝๅŠ ใ™ใ‚‹ๅ ดๅˆใ€ไปฎๆƒณๅŒ–ใ•ใ‚ŒใŸใƒ†ใƒผใƒ–ใƒซใฎใƒ“ใƒฅใƒผใƒใƒผใƒˆใ‹ใ‚‰ใ‚นใ‚ฏใƒญใƒผใƒซใ‚ขใ‚ฆใƒˆใ—ใŸ้ …็›ฎใฎใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ™ใ‚‹ใ“ใจใŒ็†ใซใ‹ใชใฃใฆใ„ใพใ™ใ€‚ใ“ใ‚Œใฏใ€`useCallback` ใ‚’ใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใฎๆœ€้ฉๅŒ–ใจใ—ใฆๅˆฉ็”จใ™ใ‚‹ๅ ดๅˆใซๆœŸๅพ…ใซๆฒฟใฃใŸๅ‹•ไฝœใจใชใ‚Šใพใ™ใ€‚ใใ†ใงใชใ„ๅ ดๅˆใฏใ€[state ๅค‰ๆ•ฐ](/reference/react/useState#im-trying-to-set-state-to-a-function-but-it-gets-called-instead) ใ‚„ [ref](/reference/react/useRef#avoiding-recreating-the-ref-contents) ใฎๆ–นใŒ้ฉๅˆ‡ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚
54+
* React ใฏใ€**็‰นๅฎšใฎ็†็”ฑใŒใชใ„้™ใ‚Šใ€ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ•ใ‚ŒใŸ้–ขๆ•ฐใ‚’็ ดๆฃ„ใ—ใพใ›ใ‚“**ใ€‚ใŸใจใˆใฐใ€้–‹็™บไธญใซใฏใ€ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใฎใƒ•ใ‚กใ‚คใƒซใ‚’็ทจ้›†ใ™ใ‚‹ใจ React ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ—ใพใ™ใ€‚้–‹็™บ็’ฐๅขƒใจๆœฌ็•ช็’ฐๅขƒใฎไธกๆ–นใงใ€ๅˆๅ›žใƒžใ‚ฆใƒณใƒˆๆ™‚ใซใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒไธ€ๆ™‚ๅœๆญขใ™ใ‚‹ใจใ€React ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ—ใพใ™ใ€‚ๅฐ†ๆฅ็š„ใซใ€React ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ™ใ‚‹ใ“ใจใ‚’ๆดป็”จใ—ใŸใ•ใ‚‰ใชใ‚‹ๆฉŸ่ƒฝใ‚’่ฟฝๅŠ ใ™ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚ไพ‹ใˆใฐใ€ๅฐ†ๆฅ็š„ใซ React ใŒไปฎๆƒณๅŒ–ใƒชใ‚นใƒˆใซๅฏพใ™ใ‚‹็ต„ใฟ่พผใฟใ‚ตใƒใƒผใƒˆใ‚’่ฟฝๅŠ ใ™ใ‚‹ๅ ดๅˆใ€ไปฎๆƒณๅŒ–ใ•ใ‚ŒใŸใƒ†ใƒผใƒ–ใƒซใฎใƒ“ใƒฅใƒผใƒใƒผใƒˆใ‹ใ‚‰ใ‚นใ‚ฏใƒญใƒผใƒซใ‚ขใ‚ฆใƒˆใ—ใŸ้ …็›ฎใฎใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’็ ดๆฃ„ใ™ใ‚‹ใ“ใจใŒ็†ใซใ‹ใชใฃใฆใ„ใพใ™ใ€‚ใ“ใ‚Œใฏใ€`useCallback` ใ‚’ใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใฎๆœ€้ฉๅŒ–ใจใ—ใฆๅˆฉ็”จใ™ใ‚‹ๅ ดๅˆใซๆœŸๅพ…ใซๆฒฟใฃใŸๅ‹•ไฝœใจใชใ‚Šใพใ™ใ€‚ใใ†ใงใชใ„ๅ ดๅˆใฏใ€[state ๅค‰ๆ•ฐ](/reference/react/useState#im-trying-to-set-state-to-a-function-but-it-gets-called-instead) ใ‚„ [ref](/reference/react/useRef#avoiding-recreating-the-ref-contents) ใฎๆ–นใŒ้ฉๅˆ‡ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚
5555
5656
---
5757
@@ -103,7 +103,7 @@ function ProductPage({ productId, referrer, theme }) {
103103
104104
`theme` ใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใ‚’ๅˆ‡ใ‚Šๆ›ฟใˆใ‚‹ใจใ‚ขใƒ—ใƒชใŒไธ€็žฌใƒ•ใƒชใƒผใ‚บใ™ใ‚‹ใ“ใจใซๆฐ—ไป˜ใใพใ—ใŸใŒใ€JSX ใ‹ใ‚‰ `<ShippingForm />` ใ‚’ๅ–ใ‚Š้™คใใจใ€้ซ˜้€Ÿใซๆ„Ÿใ˜ใ‚‰ใ‚Œใพใ™ใ€‚ใ“ใ‚Œใฏ `ShippingForm` ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‚’ๆœ€้ฉๅŒ–ใ™ใ‚‹ไพกๅ€คใŒใ‚ใ‚‹ใ“ใจใ‚’็คบใ—ใฆใ„ใพใ™ใ€‚
105105
106-
**ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏใ€ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒๅ†ใƒฌใƒณใƒ€ใƒผใ•ใ‚Œใ‚‹ใจใ€React ใฏใใฎๅญ่ฆ็ด ๅ…จใฆใ‚’ๅ†ๅธฐ็š„ใซๅ†ใƒฌใƒณใƒ€ใƒผใ—ใพใ™ใ€‚** ใ“ใ‚ŒใŒใ€`ProductPage` ใŒ็•ฐใชใ‚‹ `theme` ใงๅ†ใƒฌใƒณใƒ€ใƒผใ•ใ‚Œใ‚‹ใจใ€`ShippingForm` ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆ*ใ‚‚*ๅ†ใƒฌใƒณใƒ€ใƒผใ•ใ‚Œใ‚‹็†็”ฑใงใ™ใ€‚ๅ†ใƒฌใƒณใƒ€ใƒผใซๅคšใใฎ่จˆ็ฎ—ใ‚’ๅฟ…่ฆใจใ—ใชใ„ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใซใจใฃใฆใฏๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ—ใ‹ใ—ใ€ๅ†ใƒฌใƒณใƒ€ใƒผใŒ้…ใ„ใ“ใจใ‚’็ขบ่ชใ—ใŸๅ ดๅˆใ€ [`memo`](/reference/react/memo) ใงใƒฉใƒƒใƒ—ใ™ใ‚‹ใ“ใจใงใ€props ใŒๅ‰ๅ›žใฎใƒฌใƒณใƒ€ใƒผๆ™‚ใจๅŒใ˜ใงใ‚ใ‚‹ๅ ดๅˆใซ `ShippingForm` ใซๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ™ใ‚‹ใ‚ˆใ†ใซๆŒ‡็คบใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
106+
**ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏใ€ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒๅ†ใƒฌใƒณใƒ€ใƒผใ•ใ‚Œใ‚‹ใจใ€React ใฏใใฎๅญ่ฆ็ด ๅ…จใฆใ‚’ๅ†ๅธฐ็š„ใซๅ†ใƒฌใƒณใƒ€ใƒผใ—ใพใ™**ใ€‚ใ“ใ‚ŒใŒใ€`ProductPage` ใŒ็•ฐใชใ‚‹ `theme` ใงๅ†ใƒฌใƒณใƒ€ใƒผใ•ใ‚Œใ‚‹ใจใ€`ShippingForm` ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆ*ใ‚‚*ๅ†ใƒฌใƒณใƒ€ใƒผใ•ใ‚Œใ‚‹็†็”ฑใงใ™ใ€‚ๅ†ใƒฌใƒณใƒ€ใƒผใซๅคšใใฎ่จˆ็ฎ—ใ‚’ๅฟ…่ฆใจใ—ใชใ„ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใซใจใฃใฆใฏๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใ—ใ‹ใ—ใ€ๅ†ใƒฌใƒณใƒ€ใƒผใŒ้…ใ„ใ“ใจใ‚’็ขบ่ชใ—ใŸๅ ดๅˆใ€ [`memo`](/reference/react/memo) ใงใƒฉใƒƒใƒ—ใ™ใ‚‹ใ“ใจใงใ€props ใŒๅ‰ๅ›žใฎใƒฌใƒณใƒ€ใƒผๆ™‚ใจๅŒใ˜ใงใ‚ใ‚‹ๅ ดๅˆใซ `ShippingForm` ใซๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ™ใ‚‹ใ‚ˆใ†ใซๆŒ‡็คบใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
107107
108108
```js {3,5}
109109
import { memo } from 'react';
@@ -113,7 +113,7 @@ const ShippingForm = memo(function ShippingForm({ onSubmit }) {
113113
});
114114
```
115115
116-
**ใ“ใฎๅค‰ๆ›ดใซใ‚ˆใ‚Šใ€ใ™ในใฆใฎ props ใŒๅ‰ๅ›žใฎใƒฌใƒณใƒ€ใƒผๆ™‚ใจ*ๅŒใ˜*ๅ ดๅˆใ€`ShippingForm` ใฏๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚** ใ“ใ‚ŒใŒ้–ขๆ•ฐใฎใ‚ญใƒฃใƒƒใ‚ทใƒฅใŒ้‡่ฆใซใชใ‚‹็žฌ้–“ใงใ™๏ผ `handleSubmit` ใ‚’ `useCallback` ใชใ—ใงๅฎš็พฉใ—ใŸใจใ—ใพใ—ใ‚‡ใ†ใ€‚
116+
**ใ“ใฎๅค‰ๆ›ดใซใ‚ˆใ‚Šใ€ใ™ในใฆใฎ props ใŒๅ‰ๅ›žใฎใƒฌใƒณใƒ€ใƒผๆ™‚ใจ*ๅŒใ˜*ๅ ดๅˆใ€`ShippingForm` ใฏๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™**ใ€‚ใ“ใ‚ŒใŒ้–ขๆ•ฐใฎใ‚ญใƒฃใƒƒใ‚ทใƒฅใŒ้‡่ฆใซใชใ‚‹็žฌ้–“ใงใ™๏ผ `handleSubmit` ใ‚’ `useCallback` ใชใ—ใงๅฎš็พฉใ—ใŸใจใ—ใพใ—ใ‚‡ใ†ใ€‚
117117
118118
```js {2,3,8,12-13}
119119
function ProductPage({ productId, referrer, theme }) {
@@ -134,7 +134,7 @@ function ProductPage({ productId, referrer, theme }) {
134134
}
135135
```
136136
137-
**JavaScriptใงใฏใ€`function () {}` ใพใŸใฏ `() => {}` ใฏๅธธใซ*็•ฐใชใ‚‹*้–ขๆ•ฐใ‚’ไฝœๆˆใ—ใพใ™ใ€‚** ใ“ใ‚Œใฏ `{}` ใฎใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใƒชใƒ†ใƒฉใƒซใŒๅธธใซๆ–ฐใ—ใ„ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใฎใจไผผใฆใ„ใพใ™ใ€‚้€šๅธธใ€ใ“ใ‚Œใฏๅ•้กŒใซใชใ‚Šใพใ›ใ‚“ใŒใ€ใใ‚Œใฏ `ShippingForm` ใฎ props ใŒๆฑบใ—ใฆๅŒใ˜ใซใชใ‚‰ใชใ„ใจใ„ใ†ใ“ใจใ‚’ๆ„ๅ‘ณใ—ใ€ใ‚ใชใŸใฎ [`memo`](/reference/react/memo) ใซใ‚ˆใ‚‹ๆœ€้ฉๅŒ–ใฏๆฉŸ่ƒฝใ—ใชใ„ใงใ—ใ‚‡ใ†ใ€‚ใ“ใ‚ŒใŒ `useCallback` ใŒไพฟๅˆฉใชๅ ด้ขใงใ™ใ€‚
137+
**JavaScriptใงใฏใ€`function () {}` ใพใŸใฏ `() => {}` ใฏๅธธใซ*็•ฐใชใ‚‹*้–ขๆ•ฐใ‚’ไฝœๆˆใ—ใพใ™**ใ€‚ใ“ใ‚Œใฏ `{}` ใฎใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใƒชใƒ†ใƒฉใƒซใŒๅธธใซๆ–ฐใ—ใ„ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใฎใจไผผใฆใ„ใพใ™ใ€‚้€šๅธธใ€ใ“ใ‚Œใฏๅ•้กŒใซใชใ‚Šใพใ›ใ‚“ใŒใ€ใใ‚Œใฏ `ShippingForm` ใฎ props ใŒๆฑบใ—ใฆๅŒใ˜ใซใชใ‚‰ใชใ„ใจใ„ใ†ใ“ใจใ‚’ๆ„ๅ‘ณใ—ใ€ใ‚ใชใŸใฎ [`memo`](/reference/react/memo) ใซใ‚ˆใ‚‹ๆœ€้ฉๅŒ–ใฏๆฉŸ่ƒฝใ—ใชใ„ใงใ—ใ‚‡ใ†ใ€‚ใ“ใ‚ŒใŒ `useCallback` ใŒไพฟๅˆฉใชๅ ด้ขใงใ™ใ€‚
138138
139139
```js {2,3,8,12-13}
140140
function ProductPage({ productId, referrer, theme }) {
@@ -159,7 +159,7 @@ function ProductPage({ productId, referrer, theme }) {
159159
160160
<Note>
161161
162-
**`useCallback` ใฏใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใฎๆœ€้ฉๅŒ–ใจใ—ใฆใฎใฟ้ ผใ‚‹ในใใงใ™ใ€‚** ใ‚‚ใ—ใ‚ณใƒผใƒ‰ใŒใใ‚Œใชใ—ใงใฏๅ‹•ไฝœใ—ใชใ„ๅ ดๅˆใฏใ€ๅŸบๆœฌ็š„ใชๅ•้กŒใ‚’่ฆ‹ใคใ‘ใฆใพใšใใ‚Œใ‚’ไฟฎๆญฃใ—ใฆใใ ใ•ใ„ใ€‚ใใฎๅพŒใ€`useCallback` ใ‚’ๅ†ๅบฆ่ฟฝๅŠ ใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
162+
**`useCallback` ใฏใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใฎๆœ€้ฉๅŒ–ใจใ—ใฆใฎใฟ้ ผใ‚‹ในใใงใ™**ใ€‚ใ‚‚ใ—ใ‚ณใƒผใƒ‰ใŒใใ‚Œใชใ—ใงใฏๅ‹•ไฝœใ—ใชใ„ๅ ดๅˆใฏใ€ๅŸบๆœฌ็š„ใชๅ•้กŒใ‚’่ฆ‹ใคใ‘ใฆใพใšใใ‚Œใ‚’ไฟฎๆญฃใ—ใฆใใ ใ•ใ„ใ€‚ใใฎๅพŒใ€`useCallback` ใ‚’ๅ†ๅบฆ่ฟฝๅŠ ใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚
163163
164164
</Note>
165165
@@ -196,9 +196,9 @@ function ProductPage({ productId, referrer }) {
196196
197197
ใใฎ้•ใ„ใฏใ‚ญใƒฃใƒƒใ‚ทใƒฅใงใใ‚‹*ๅ†…ๅฎน*ใงใ™ใ€‚
198198
199-
* **[`useMemo`](/reference/react/useMemo) ใฏใ‚ใชใŸใฎ้–ขๆ•ฐใฎๅ‘ผใณๅ‡บใ—*็ตๆžœ*ใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใพใ™ใ€‚** ใ“ใฎไพ‹ใงใฏใ€`product` ใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„้™ใ‚Šใ€`computeRequirements(product)` ใฎๅ‘ผใณๅ‡บใ—็ตๆžœใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€`ShippingForm` ใ‚’ไธๅฟ…่ฆใซๅ†ใƒฌใƒณใƒ€ใƒผใ™ใ‚‹ใ“ใจใชใใ€`requirements` ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ไธ‹ไฝใซๆธกใ™ใ“ใจใŒใงใใพใ™ใ€‚ๅฟ…่ฆใซๅฟœใ˜ใฆใ€React ใฏใƒฌใƒณใƒ€ใƒผไธญใซใ‚ใชใŸใŒๆธกใ—ใŸ้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใฆ็ตๆžœใ‚’่จˆ็ฎ—ใ—ใพใ™ใ€‚
199+
* **[`useMemo`](/reference/react/useMemo) ใฏใ‚ใชใŸใฎ้–ขๆ•ฐใฎๅ‘ผใณๅ‡บใ—*็ตๆžœ*ใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใพใ™**ใ€‚ใ“ใฎไพ‹ใงใฏใ€`product` ใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„้™ใ‚Šใ€`computeRequirements(product)` ใฎๅ‘ผใณๅ‡บใ—็ตๆžœใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€`ShippingForm` ใ‚’ไธๅฟ…่ฆใซๅ†ใƒฌใƒณใƒ€ใƒผใ™ใ‚‹ใ“ใจใชใใ€`requirements` ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚’ไธ‹ไฝใซๆธกใ™ใ“ใจใŒใงใใพใ™ใ€‚ๅฟ…่ฆใซๅฟœใ˜ใฆใ€React ใฏใƒฌใƒณใƒ€ใƒผไธญใซใ‚ใชใŸใŒๆธกใ—ใŸ้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใฆ็ตๆžœใ‚’่จˆ็ฎ—ใ—ใพใ™ใ€‚
200200
201-
* **`useCallback` ใฏ*้–ขๆ•ฐ่‡ชไฝ“*ใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใพใ™ใ€‚** `useMemo`ใจใฏ็•ฐใชใ‚Šใ€ใ‚ใชใŸใŒๆไพ›ใ™ใ‚‹้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใพใ›ใ‚“ใ€‚ไปฃใ‚ใ‚Šใซใ€ใ‚ใชใŸใŒๆไพ›ใ—ใŸ้–ขๆ•ฐใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใฆใ€`productId` ใพใŸใฏ `referrer` ใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„้™ใ‚Šใ€`handleSubmit` *่‡ชไฝ“*ใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€`ShippingForm` ใ‚’ไธๅฟ…่ฆใซๅ†ใƒฌใƒณใƒ€ใƒผใ™ใ‚‹ใ“ใจใชใใ€`handleSubmit` ้–ขๆ•ฐใ‚’ไธ‹ไฝใซๆธกใ™ใ“ใจใŒใงใใพใ™ใ€‚ใƒฆใƒผใ‚ถใƒผใŒใƒ•ใ‚ฉใƒผใƒ ใ‚’้€ไฟกใ™ใ‚‹ใพใงใ‚ใชใŸใฎใ‚ณใƒผใƒ‰ใฏๅฎŸ่กŒใ•ใ‚Œใพใ›ใ‚“ใ€‚
201+
* **`useCallback` ใฏ*้–ขๆ•ฐ่‡ชไฝ“*ใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใพใ™**ใ€‚`useMemo`ใจใฏ็•ฐใชใ‚Šใ€ใ‚ใชใŸใŒๆไพ›ใ™ใ‚‹้–ขๆ•ฐใ‚’ๅ‘ผใณๅ‡บใ—ใพใ›ใ‚“ใ€‚ไปฃใ‚ใ‚Šใซใ€ใ‚ใชใŸใŒๆไพ›ใ—ใŸ้–ขๆ•ฐใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใฆใ€`productId` ใพใŸใฏ `referrer` ใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„้™ใ‚Šใ€`handleSubmit` *่‡ชไฝ“*ใŒๅค‰ๆ›ดใ•ใ‚Œใชใ„ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€`ShippingForm` ใ‚’ไธๅฟ…่ฆใซๅ†ใƒฌใƒณใƒ€ใƒผใ™ใ‚‹ใ“ใจใชใใ€`handleSubmit` ้–ขๆ•ฐใ‚’ไธ‹ไฝใซๆธกใ™ใ“ใจใŒใงใใพใ™ใ€‚ใƒฆใƒผใ‚ถใƒผใŒใƒ•ใ‚ฉใƒผใƒ ใ‚’้€ไฟกใ™ใ‚‹ใพใงใ‚ใชใŸใฎใ‚ณใƒผใƒ‰ใฏๅฎŸ่กŒใ•ใ‚Œใพใ›ใ‚“ใ€‚
202202
203203
ใ™ใงใซ [`useMemo`](/reference/react/useMemo) ใซ่ฉณใ—ใ„ๅ ดๅˆใ€`useCallback` ใ‚’ๆฌกใฎใ‚ˆใ†ใซ่€ƒใˆใ‚‹ใจๅฝน็ซ‹ใคใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใ€‚
204204
@@ -228,7 +228,7 @@ function useCallback(fn, dependencies) {
228228
229229
`useCallback` ใฏ้–ขๆ•ฐใฎ*ไฝœๆˆ*ใ‚’้˜ฒใใ‚ใ‘ใงใฏใชใ„ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚ใ‚ใชใŸใฏๅธธใซ้–ขๆ•ฐใ‚’ไฝœๆˆใ—ใฆใ„ใพใ™๏ผˆใใ‚Œใฏๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“๏ผ๏ผ‰ใ€‚ใ—ใ‹ใ—ใ€ไฝ•ใ‚‚ๅค‰ใ‚ใ‚‰ใชใ„ๅ ดๅˆใ€Reactใฏใใ‚Œใ‚’็„ก่ฆ–ใ—ใ€ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ•ใ‚ŒใŸ้–ขๆ•ฐใ‚’่ฟ”ใ—ใพใ™ใ€‚
230230
231-
**ๅฎŸ้š›ใซใฏใ€ไปฅไธ‹ใฎใ„ใใคใ‹ใฎๅŽŸๅ‰‡ใซๅพ“ใ†ใ“ใจใงใ€ๅคšใใฎใƒกใƒขๅŒ–ใ‚’ไธ่ฆใซใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚**
231+
**ๅฎŸ้š›ใซใฏใ€ไปฅไธ‹ใฎใ„ใใคใ‹ใฎๅŽŸๅ‰‡ใซๅพ“ใ†ใ“ใจใงใ€ๅคšใใฎใƒกใƒขๅŒ–ใ‚’ไธ่ฆใซใ™ใ‚‹ใ“ใจใŒใงใใพใ™**ใ€‚
232232
233233
1. ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒไป–ใฎใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ‚’่ฆ–่ฆš็š„ใซใƒฉใƒƒใƒ—ใ™ใ‚‹ใจใใฏใ€ใใ‚ŒใŒ[ๅญใจใ—ใฆ JSX ใ‚’ๅ—ใ‘ๅ…ฅใ‚Œใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚](/learn/passing-props-to-a-component#passing-jsx-as-children) ใ™ใ‚‹ใจใ€ใƒฉใƒƒใƒ‘ใƒผใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใŒ่‡ช่บซใฎ็Šถๆ…‹ใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใจใ€React ใฏใใฎๅญใŒๅ†ใƒฌใƒณใƒ€ใƒผใ™ใ‚‹ๅฟ…่ฆใŒใชใ„ใ“ใจใ‚’่ช่ญ˜ใ—ใพใ™ใ€‚
234234
1. ใƒญใƒผใ‚ซใƒซ็Šถๆ…‹ใ‚’ๅ„ชๅ…ˆใ—ใ€ๅฟ…่ฆไปฅไธŠใซ [state ใ‚’ๅผ•ใไธŠใ’ใชใ„ใง](/learn/sharing-state-between-components)ใใ ใ•ใ„ใ€‚ใƒ•ใ‚ฉใƒผใƒ ใ‚„ใ€ใ‚ขใ‚คใƒ†ใƒ ใŒใƒ›ใƒใƒผใ•ใ‚Œใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹ใฎใ‚ˆใ†ใชไธ€ๆ™‚็š„ใช็Šถๆ…‹ใ‚’ใƒ„ใƒชใƒผใฎใƒˆใƒƒใƒ—ใ‚„ใ‚ฐใƒญใƒผใƒใƒซ็Šถๆ…‹ใƒฉใ‚คใƒ–ใƒฉใƒชใซไฟๆŒใ—ใชใ„ใงใใ ใ•ใ„ใ€‚
@@ -248,7 +248,7 @@ function useCallback(fn, dependencies) {
248248
249249
ใ‚ซใ‚ฆใƒณใ‚ฟใƒผใฎๅข—ๅŠ ใฏ้…ใๆ„Ÿใ˜ใ‚‰ใ‚Œใ‚‹ใงใ—ใ‚‡ใ†ใ€‚ใชใœใชใ‚‰ใ€ใใ‚Œใฏ้…ๅปถใ•ใ›ใ‚‰ใ‚ŒใŸ `ShippingForm` ใฎๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ๅผทๅˆถใ™ใ‚‹ใ‹ใ‚‰ใงใ™ใ€‚ใ“ใ‚Œใฏใ€ใ‚ซใ‚ฆใƒณใ‚ฟใƒผใŒๅค‰ๆ›ดใ•ใ‚Œใ€ใƒฆใƒผใ‚ถใƒผใฎๆ–ฐใ—ใ„้ธๆŠžใ‚’็”ป้ขไธŠใซๅๆ˜ ใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใŸใ‚ใ€ไบˆๆƒณใ•ใ‚Œใ‚‹ๅ‹•ไฝœใงใ™ใ€‚
250250
251-
ๆฌกใซใ€ใƒ†ใƒผใƒžใฎๅˆ‡ใ‚Šๆ›ฟใˆใ‚’่ฉฆใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚**ไบบ็‚บ็š„ใช้…ๅปถใซใ‚‚้–ขใ‚ใ‚‰ใšใ€`useCallback` ใจ [`memo`](/reference/react/memo) ใ‚’็ต„ใฟๅˆใ‚ใ›ใ‚‹ใ“ใจใงใ€ใ“ใ‚Œใฏ้€Ÿใ„ใงใ™๏ผ** `ShippingForm` ใฏใ€`handleSubmit` ้–ขๆ•ฐใŒๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใชใ„ใŸใ‚ใ€ๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ—ใŸใ€‚`handleSubmit` ้–ขๆ•ฐใฏๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ใชใœใชใ‚‰ใ€`productId` ใจ `referrer`๏ผˆใ‚ใชใŸใฎ `useCallback` ใฎไพๅญ˜้–ขไฟ‚๏ผ‰ใฎไธกๆ–นใŒๆœ€ๅพŒใฎใƒฌใƒณใƒ€ใƒผไปฅ้™ใซๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใชใ„ใ‹ใ‚‰ใงใ™ใ€‚
251+
ๆฌกใซใ€ใƒ†ใƒผใƒžใฎๅˆ‡ใ‚Šๆ›ฟใˆใ‚’่ฉฆใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚**ไบบ็‚บ็š„ใช้…ๅปถใซใ‚‚้–ขใ‚ใ‚‰ใšใ€`useCallback` ใจ [`memo`](/reference/react/memo) ใ‚’็ต„ใฟๅˆใ‚ใ›ใ‚‹ใ“ใจใงใ€ใ“ใ‚Œใฏ้€Ÿใ„ใงใ™**๏ผ`ShippingForm` ใฏใ€`handleSubmit` ้–ขๆ•ฐใŒๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใชใ„ใŸใ‚ใ€ๅ†ใƒฌใƒณใƒ€ใƒผใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ—ใŸใ€‚`handleSubmit` ้–ขๆ•ฐใฏๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ใชใœใชใ‚‰ใ€`productId` ใจ `referrer`๏ผˆใ‚ใชใŸใฎ `useCallback` ใฎไพๅญ˜้–ขไฟ‚๏ผ‰ใฎไธกๆ–นใŒๆœ€ๅพŒใฎใƒฌใƒณใƒ€ใƒผไปฅ้™ใซๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใชใ„ใ‹ใ‚‰ใงใ™ใ€‚
252252
253253
<Sandpack>
254254
@@ -751,7 +751,7 @@ function ChatRoom({ roomId }) {
751751
// ...
752752
```
753753
754-
ใ“ใ‚Œใซใ‚ˆใ‚Šใ€`roomId` ใŒๅŒใ˜ๅ ดๅˆใซๅ†ใƒฌใƒณใƒ€ใƒผ้–“ใง `createOptions` ้–ขๆ•ฐใŒๅŒใ˜ใงใ‚ใ‚‹ใ“ใจใŒไฟ่จผใ•ใ‚Œใพใ™ใ€‚**ใ—ใ‹ใ—ใ€้–ขๆ•ฐใฎไพๅญ˜ๆ€งใ‚’ๅฟ…่ฆใจใ—ใชใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ“ใจใŒใ•ใ‚‰ใซ่‰ฏใ„ใงใ™ใ€‚** ้–ขๆ•ฐใ‚’ใ‚จใƒ•ใ‚งใ‚ฏใƒˆใฎ*ๅ†…้ƒจ*ใซ็งปๅ‹•ใ—ใพใ™ใ€‚
754+
ใ“ใ‚Œใซใ‚ˆใ‚Šใ€`roomId` ใŒๅŒใ˜ๅ ดๅˆใซๅ†ใƒฌใƒณใƒ€ใƒผ้–“ใง `createOptions` ้–ขๆ•ฐใŒๅŒใ˜ใงใ‚ใ‚‹ใ“ใจใŒไฟ่จผใ•ใ‚Œใพใ™ใ€‚**ใ—ใ‹ใ—ใ€้–ขๆ•ฐใฎไพๅญ˜ๆ€งใ‚’ๅฟ…่ฆใจใ—ใชใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ“ใจใŒใ•ใ‚‰ใซ่‰ฏใ„ใงใ™**ใ€‚้–ขๆ•ฐใ‚’ใ‚จใƒ•ใ‚งใ‚ฏใƒˆใฎ*ๅ†…้ƒจ*ใซ็งปๅ‹•ใ—ใพใ™ใ€‚
755755
756756
```js {5-10,16}
757757
function ChatRoom({ roomId }) {

0 commit comments

Comments
ย (0)