-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(useGetState): get state synchronously #2268
Conversation
@li-jia-nan @hchlq @miracles1919 @crazylxr pls review |
const setState = useCallback<SetStateAction<S | undefined>>((stateOrAction) => { | ||
const newState = isFunction(stateOrAction) ? stateOrAction(stateRef.current) : stateOrAction; | ||
|
||
stateRef.current = newState; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
同步后,要补个单测吗
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
可以,我补下
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
程哥,看下这个讨论:#2266 (comment), 这个 PR 的改动, 之前就有人提过 #1306 (comment), 不知道现在这个改动算不算破坏性更改呢?之前是没法通过 getState 同步获取到最新状态的, 应该不会有人还用它来获取旧状态吧 #2266 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
有可能的,刚才有想到过,不过一般使用的人都是在 render 过程中的,像在 set 之后重新获取旧状态的比较少。
不过咱们还是保险起见,放到 v4 的规划是不是更好呢
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
有可能的,刚才有想到过,不过一般使用的人都是在 render 过程中的,像在 set 之后重新获取旧状态的比较少。
不过咱们还是保险起见,放到 v4 的规划是不是更好呢
好的呢,那就放在 v4 做吧~
建议新增 hook,以免引入 breaking changes,新 hook:#2348 |
[中文版模板 / Chinese template]
🤔 This is a ...
🔗 Related issue link
resolve: #2266
💡 Background and solution
📝 Changelog
☑️ Self Check before Merge