Add a reset history method to useStateWithHistory
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 48/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- react, typescript
- 领域
- frontend
调研方向
Start by locating the TypeScript implementation and tests for useStateWithHistory, then compare its API with useUndoable's resetInitialState. Add a reset method that accepts the new state, makes it the sole history entry, and leaves rewinding unable to reach the previous initial value; update or add tests for the reset behavior.
由索引模型根据 Issue 内容生成。
描述
Is your feature request related to a problem? Please describe.
useUndoable has a great summary of why resetting state on useStateWithHistory is useful. I set my state to the response of a network request and want to prevent the user being able to rewind history to the initial value set before the request had finished.
Describe the solution you'd like
Add a method to useStateWithHistory that follows the API of useUndoable's resetInitialState, where it takes in a param to set the state to and clears the history.
Describe alternatives you've considered
There are two alternatives I've been using:
- using useUndoable instead of this library (but it doesn't work for deeply nested objects and is an additional dependency)
- Manually extending the useStateWithHistory myself to include this method. The method is really easy to add:
const resetInitialState = useCallback(
(newInitialState: IHookStateInitAction<S>) => {
innerSetState(newInitialState as S);
history.current = [newInitialState as I];
historyPosition.current = 0;
},
[],
);
This seems to have been requested already in https://github.com/streamich/react-use/issues/1386 but I'm re-raising here because:
I believe the interface of useUndoable is relevant, I'm providing a proposed solution, and that issue has been open for over 2 years.
If approved i'd even be happy to raise a PR myself.
Thanks!
- 主要语言
- TypeScript
- 星标
- 44k
- 派生
- 3.3k
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
streamich/react-use 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
-
Add Generic Fn for useDebounce可能已有人在做 @itsmejay80 于 192 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 64/100
-
useVideo.story.tsx - sampleVideo can not be loaded可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 1/5 1 小时以内 新手友好度 62/100
-
useSlider: event callbacks are not updated可能已有人在做 @erykpiast 于 1839 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 62/100
查看 streamich/react-use 的全部 Issue
相似的 Issue
-
ready-for-agent
难度 2/5 1-3 小时 新手友好度 68/100
xavxyz/bei-shan-lin-shui#57 ·
维护者通常 1 天内回复
-
[BUG] rag: sentence content can cross the reported sentence boundaries可能已有人在做 @LJK-ikun 今天认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
bug needs-triage
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
README: the Resource URI Schemas example's file://documents/* pattern only matches that literal URI未关闭
难度 1/5 1 小时以内 新手友好度 88/100
platformatic/mcp#361 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
siyuan-note/siyuan#20799 · 7 条评论 ·
维护者通常 1 天内回复