Commit df2c19f
committed
useFormState: Compare action signatures when reusing form state (#27370)
During an MPA form submission, useFormState should only reuse the form
state if same action is passed both times. (We also compare the key
paths.)
We compare the identity of the inner closure function, disregarding the
value of the bound arguments. That way you can pass an inline Server
Action closure:
```js
function FormContainer({maxLength}) {
function submitAction(prevState, formData) {
'use server'
if (formData.get('field').length > maxLength) {
return { errorMsg: 'Too many characters' };
}
// ...
}
return <Form submitAction={submitAction} />
}
```
DiffTrain build for [95c9554](95c9554)1 parent 43fc2ba commit df2c19f
File tree
8 files changed
+321
-219
lines changed- compiled/facebook-www
8 files changed
+321
-219
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
9433 | 9433 | | |
9434 | 9434 | | |
9435 | 9435 | | |
9436 | | - | |
| 9436 | + | |
9437 | 9437 | | |
9438 | | - | |
9439 | | - | |
9440 | | - | |
9441 | | - | |
9442 | | - | |
9443 | | - | |
| 9438 | + | |
9444 | 9439 | | |
9445 | | - | |
9446 | | - | |
| 9440 | + | |
| 9441 | + | |
| 9442 | + | |
| 9443 | + | |
| 9444 | + | |
| 9445 | + | |
| 9446 | + | |
| 9447 | + | |
9447 | 9448 | | |
9448 | | - | |
9449 | | - | |
9450 | | - | |
| 9449 | + | |
| 9450 | + | |
| 9451 | + | |
| 9452 | + | |
9451 | 9453 | | |
9452 | | - | |
9453 | | - | |
9454 | | - | |
| 9454 | + | |
9455 | 9455 | | |
9456 | | - | |
9457 | | - | |
9458 | | - | |
9459 | | - | |
9460 | | - | |
9461 | | - | |
9462 | | - | |
9463 | | - | |
9464 | | - | |
| 9456 | + | |
| 9457 | + | |
| 9458 | + | |
| 9459 | + | |
9465 | 9460 | | |
9466 | | - | |
| 9461 | + | |
| 9462 | + | |
| 9463 | + | |
| 9464 | + | |
| 9465 | + | |
| 9466 | + | |
| 9467 | + | |
| 9468 | + | |
| 9469 | + | |
| 9470 | + | |
9467 | 9471 | | |
9468 | | - | |
9469 | | - | |
9470 | | - | |
| 9472 | + | |
9471 | 9473 | | |
9472 | | - | |
9473 | | - | |
9474 | | - | |
| 9474 | + | |
| 9475 | + | |
| 9476 | + | |
| 9477 | + | |
| 9478 | + | |
9475 | 9479 | | |
9476 | | - | |
9477 | | - | |
| 9480 | + | |
| 9481 | + | |
| 9482 | + | |
9478 | 9483 | | |
9479 | | - | |
9480 | | - | |
9481 | | - | |
| 9484 | + | |
| 9485 | + | |
| 9486 | + | |
9482 | 9487 | | |
9483 | | - | |
9484 | | - | |
9485 | | - | |
| 9488 | + | |
| 9489 | + | |
| 9490 | + | |
| 9491 | + | |
| 9492 | + | |
| 9493 | + | |
9486 | 9494 | | |
9487 | 9495 | | |
9488 | | - | |
9489 | | - | |
| 9496 | + | |
| 9497 | + | |
| 9498 | + | |
| 9499 | + | |
| 9500 | + | |
| 9501 | + | |
| 9502 | + | |
| 9503 | + | |
| 9504 | + | |
9490 | 9505 | | |
9491 | | - | |
| 9506 | + | |
| 9507 | + | |
9492 | 9508 | | |
9493 | | - | |
9494 | 9509 | | |
9495 | | - | |
| 9510 | + | |
| 9511 | + | |
9496 | 9512 | | |
9497 | 9513 | | |
9498 | 9514 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
9192 | 9192 | | |
9193 | 9193 | | |
9194 | 9194 | | |
9195 | | - | |
| 9195 | + | |
9196 | 9196 | | |
9197 | | - | |
9198 | | - | |
9199 | | - | |
9200 | | - | |
9201 | | - | |
9202 | | - | |
| 9197 | + | |
9203 | 9198 | | |
9204 | | - | |
9205 | | - | |
| 9199 | + | |
| 9200 | + | |
| 9201 | + | |
| 9202 | + | |
| 9203 | + | |
| 9204 | + | |
| 9205 | + | |
| 9206 | + | |
9206 | 9207 | | |
9207 | | - | |
9208 | | - | |
9209 | | - | |
| 9208 | + | |
| 9209 | + | |
| 9210 | + | |
| 9211 | + | |
9210 | 9212 | | |
9211 | | - | |
9212 | | - | |
9213 | | - | |
| 9213 | + | |
9214 | 9214 | | |
9215 | | - | |
9216 | | - | |
9217 | | - | |
9218 | | - | |
9219 | | - | |
9220 | | - | |
9221 | | - | |
9222 | | - | |
9223 | | - | |
| 9215 | + | |
| 9216 | + | |
| 9217 | + | |
| 9218 | + | |
9224 | 9219 | | |
9225 | | - | |
| 9220 | + | |
| 9221 | + | |
| 9222 | + | |
| 9223 | + | |
| 9224 | + | |
| 9225 | + | |
| 9226 | + | |
| 9227 | + | |
| 9228 | + | |
| 9229 | + | |
9226 | 9230 | | |
9227 | | - | |
9228 | | - | |
9229 | | - | |
| 9231 | + | |
9230 | 9232 | | |
9231 | | - | |
9232 | | - | |
9233 | | - | |
| 9233 | + | |
| 9234 | + | |
| 9235 | + | |
| 9236 | + | |
| 9237 | + | |
9234 | 9238 | | |
9235 | | - | |
9236 | | - | |
| 9239 | + | |
| 9240 | + | |
| 9241 | + | |
9237 | 9242 | | |
9238 | | - | |
9239 | | - | |
9240 | | - | |
| 9243 | + | |
| 9244 | + | |
| 9245 | + | |
9241 | 9246 | | |
9242 | | - | |
9243 | | - | |
9244 | | - | |
| 9247 | + | |
| 9248 | + | |
| 9249 | + | |
| 9250 | + | |
| 9251 | + | |
| 9252 | + | |
9245 | 9253 | | |
9246 | 9254 | | |
9247 | | - | |
9248 | | - | |
| 9255 | + | |
| 9256 | + | |
| 9257 | + | |
| 9258 | + | |
| 9259 | + | |
| 9260 | + | |
| 9261 | + | |
| 9262 | + | |
| 9263 | + | |
9249 | 9264 | | |
9250 | | - | |
| 9265 | + | |
| 9266 | + | |
9251 | 9267 | | |
9252 | | - | |
9253 | 9268 | | |
9254 | | - | |
| 9269 | + | |
| 9270 | + | |
9255 | 9271 | | |
9256 | 9272 | | |
9257 | 9273 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2738 | 2738 | | |
2739 | 2739 | | |
2740 | 2740 | | |
2741 | | - | |
2742 | | - | |
2743 | | - | |
2744 | 2741 | | |
2745 | 2742 | | |
2746 | | - | |
2747 | | - | |
| 2743 | + | |
| 2744 | + | |
| 2745 | + | |
2748 | 2746 | | |
2749 | 2747 | | |
2750 | 2748 | | |
2751 | 2749 | | |
2752 | | - | |
2753 | | - | |
2754 | | - | |
2755 | | - | |
2756 | | - | |
2757 | | - | |
2758 | | - | |
2759 | | - | |
2760 | | - | |
2761 | | - | |
2762 | | - | |
2763 | | - | |
2764 | | - | |
2765 | | - | |
2766 | | - | |
| 2750 | + | |
| 2751 | + | |
| 2752 | + | |
| 2753 | + | |
| 2754 | + | |
| 2755 | + | |
| 2756 | + | |
| 2757 | + | |
| 2758 | + | |
| 2759 | + | |
| 2760 | + | |
| 2761 | + | |
| 2762 | + | |
| 2763 | + | |
| 2764 | + | |
| 2765 | + | |
| 2766 | + | |
| 2767 | + | |
| 2768 | + | |
| 2769 | + | |
| 2770 | + | |
| 2771 | + | |
| 2772 | + | |
| 2773 | + | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
2767 | 2785 | | |
2768 | 2786 | | |
2769 | 2787 | | |
| |||
4351 | 4369 | | |
4352 | 4370 | | |
4353 | 4371 | | |
4354 | | - | |
| 4372 | + | |
4355 | 4373 | | |
4356 | 4374 | | |
4357 | 4375 | | |
4358 | 4376 | | |
4359 | | - | |
4360 | | - | |
| 4377 | + | |
| 4378 | + | |
4361 | 4379 | | |
4362 | 4380 | | |
4363 | 4381 | | |
| |||
4367 | 4385 | | |
4368 | 4386 | | |
4369 | 4387 | | |
4370 | | - | |
| 4388 | + | |
4371 | 4389 | | |
4372 | 4390 | | |
4373 | 4391 | | |
| |||
4379 | 4397 | | |
4380 | 4398 | | |
4381 | 4399 | | |
4382 | | - | |
| 4400 | + | |
4383 | 4401 | | |
4384 | 4402 | | |
4385 | 4403 | | |
| |||
4442 | 4460 | | |
4443 | 4461 | | |
4444 | 4462 | | |
4445 | | - | |
4446 | | - | |
| 4463 | + | |
| 4464 | + | |
4447 | 4465 | | |
4448 | 4466 | | |
4449 | 4467 | | |
| |||
4530 | 4548 | | |
4531 | 4549 | | |
4532 | 4550 | | |
4533 | | - | |
| 4551 | + | |
0 commit comments