javascript - 如何防止退格键出现多余的 "r"字母

标签 javascript typescript react-redux

目前,我正在开发一个输入框,该输入框用于输入 Reddit 链接。

我的输入框经过编码,当用户键入字符时,前面会有一个默认的 r/,后面是用户输入的内容。

但是,现在我面临的问题是,每当用户在输入框留下r/时退格时,后面就会出现一个额外的r r/ 每当用户按下退格键时。例如r/r

这是我的代码片段:

case getType(ViewerAction.changeInputSubredditAddNewSource): {
            const s = action.payload.inputSubredditAddNewSource.split('/').slice(1).join('');

            if (action.payload.inputSubredditAddNewSource.indexOf('r/') === 0) {            
                return state.set('inputSubredditAddNewSource', `r/${s}`);
            }         
                const st = action.payload.inputSubredditAddNewSource;
                return state.set('inputSubredditAddNewSource', `r/${st}`);
        }

最佳答案

这应该在你的组件中处理,而不是 redux。您的输入应该检测何时单击退格按钮以及该字段是否为空(只是“r/”) - 不要更新字段的值。

当新输入的 value.length 小于 2(第一个字符:“r”,第二个字符:“/”)时,您可以简单地在输入的 onChange 处理程序中添加 if 语句 - 不要更新值 - 否则,更新。

关于javascript - 如何防止退格键出现多余的 "r"字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56831456/

相关文章:

javascript - 如何在客户端的 Javascript 中包含 Javascript 脚本?

angular - 如何在不重叠的情况下显示多个 snackbar

typescript - 在类型别名中声明未知数量的列表

javascript - CoffeeScript 类中的“This”关键字

javascript - 使用 JS Regex 获取带有动态尾随值的字符串的第一个值

javascript - TS2511 : Cannot create an instance of the abstract class 'Validator'

reactjs - Redux:如何将 ID 传递给 mapStateToProps 函数以从状态中获取具有该 ID 的实体

javascript - 即使未成功,状态值也会在 onSubmit 后重置

测试 createAsyncThunk Redux Toolkit Jest

javascript - 编辑php内循环的特定记录