如何防止退格键出现多余的“ r”字母

时间:2019-07-01 07:20:31

标签: 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}`); }

这是我的代码的片段:

Gantt

1 个答案:

答案 0 :(得分:2)

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

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