考察如下程式碼,頁面中有個輸入框,通過 Recoil Atom 來儲存輸入的值。 App.tsx function NameInput() {
const [name, setName] = useRecoilState(nameState);
return (
<>
<input
type="text"
value={name}
onChange={(event: React.FormEvent<HTMLInputElement>) => {
setName(event.currentTarget.value);
}}
/>
<p>{name}</p>
</>
);
}
function App() {
return (
<div className="App">
<NameInput />
</div>
);
}
實際執行效果是,輸入一定資訊後,將游標移動到其他位置再輸入,發現游標會被重置到已經輸入內容的最後。 Recoil 輸入框中游標位置被重置到了內容末尾 相關 issue 參見 Setter in selector forces the input cursor to jump to end of input field on change event #488 實踐中發現,該問題在 Recoil 搭配 React 16.8 才會有問題,而更新 React 後問題不復現,比如 16.9。 如果受限於平臺或其他不可抗力無法升級 React,臨時的解決辦法可以是通過 - const [name, setName] = useRecoilState(nameState);
+ const setRecoilName = useSetRecoilState(nameState);
+ const [name, setName] = useState("");
+ useEffect(() => {
+ setRecoilName(name);
+ }, [name, setRecoilName]);
|
The text was updated successfully, but these errors were encountered: |
Recoil Input 游標位置被重置到末尾的問題
相關文章
- input 獲取游標位置與設定游標位置
- el-input 限制number型別,輸入中文,游標不垂直居中問題型別
- ios11.3之前H5中input框游標位置怪異(不正確),已解決!iOSH5
- 進入編輯頁面時,如何把游標聚焦到第一個input?
- [20180819]關於父子游標問題(11g).txt
- HTML input reset 重置按鈕HTML
- 【譯】使用“強制執行到游標”
- Recoil 中多級資料聯動及資料重置的合理做法
- vue3中ctrl加回車換行,游標位置設定Vue
- 游標美化
- vim跳轉到本行末尾
- 開發小程式被問到最頻繁的問題(上)
- uniapp根據導航欄的標題定位到相應錨點位置APP
- 那些年踩過的坑——input輸入框 ios端 readyonly 點選出現游標iOS
- Android studio快捷方式【 游標返回/前進被佔用】Android
- (12)mysql 中的游標MySql
- Recoil 的使用
- 多行文字末尾新增圖片排版問題解決
- input file相容性問題
- AndroidStudio3 輸入法不跟著游標問題終極解決方案Android
- selenium中解決非input標籤上傳檔案時的一些問題
- Vim游標移動
- 414周賽·第三題 - 3282. 到達陣列末尾的最大得分陣列
- 二分查詢的迴圈條件及指標終止位置問題指標
- 解決自定義可拖動View在軟鍵盤彈出和隱藏時位置重置問題View
- Web 中的“選區”和“游標”Web
- Android 滑鼠游標的圖形合成Android
- el-input-number 的圖層顯示問題
- 阻止游標預設事件事件
- css 滑鼠游標設定CSS
- 【Swing】JTextField設定游標
- 點選<a href>標籤無法跳轉到servlet的問題Servlet
- 跳槽時,這些Java面試題99%會被問到Java面試題
- win10游標怎麼縮放_win10游標縮放方法Win10
- cad游標大小怎麼調 cad游標中心正方形大小設定
- 解決MVVMLight導航VM不重置問題MVVM
- 如何更改 Mac 上的游標顏色Mac
- Web前端求職時都會被問到的Redis面試題分享!Web前端求職Redis面試題