目前,我正在使用输入框,其中输入框用于输入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语句-不更新值-否则更新。