【发布时间】:2021-10-17 00:53:54
【问题描述】:
在React-Bootstrap-Typeahead的onChange中,我需要手动设置一个自定义的显示值。我的第一个想法是使用ref 并执行类似于this example 中的.clear() 的操作。
但尽管.clear() 有效,inputNode.value = 'abc' 无效,我只剩下菜单中的旧选定值。
onChange={option => {
typeaheadRef.current.blur(); // This works
typeaheadRef.current.inputNode.value = 'abc'; // This does not work (old value is retained)
}}
我也尝试直接访问我知道其 ID 的 DOM 输入元素,然后做
var inputElement = document.querySelector('input[id=myTypeahead]');
inputElement.value = 'abc';
但这也没有用。在我更改value = 之后的一瞬间,我确实看到了新的显示标签,但很快它就消失了。我认为组件保存或保留了菜单选择的值。
注意:我不能使用selected,我使用defaultSelected。我已经介绍了一些与 Formik 相关的行为,但它不适用于 selected,所以我坚持使用 defaultSelected。
【问题讨论】: