fix: return value of useEditorPlugin changes when rerender #4084
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before, if there are two tables in one document, selecting multiple table cells will cause page crash, like #4077. Now it will work normally.
The problem is that
useEditorPlugin
doesn't return a stable value. InuseSelectedCells
, thesetOption
returned byuseEditorPlugin
will change in every re-render. While theuseSelectedCells
called by the first table setsselectedCells
to a non-null value, theuseSelectedCells
called by the second table will setselectedCells
back to null, and it repeats infinitely.Removing
setOption
from dependency array also fixes this problem, but I'm not sure whether there are similar problems in other functions, so I make the return value ofuseEditorPlugin
memorized.Checklist
yarn typecheck
yarn lint:fix
yarn test
yarn brl
yarn changeset