我正在使用 react-boostrap-typeahead 库中的 AsyncTypeahead 和 Formik。两个很棒的小图书馆。我的代码的简化版本如下所示
const SearchFilter = withFormik({
mapPropsToValues: (props) {
office: someIncomingValue || [{name: 'office1', id: 1}]
}
})(TheForm)
const TheForm = (props) => {
const {values, handleReset} = props;
return (
<form>
<AsyncTypeahead
defaultSelected={[values.office]}
options={...}
onChange={...SetNewValue...}
onSearch={...}/>
<button onClick={handleReset}
</form>
)
}
通过使用 AsynchTypeahead 上的 defaultSelected 属性。我可以设置一个默认的初始值。但是我遇到的问题是当我单击按钮来处理休息时,formik 会执行它的操作并将值重置回办公室 1,但是 AsynchTypeahead 没有手动将值传递回其中的方法。所以它不会改变。我看到有一个selected
可用的道具,但是当我尝试使用它时它就会爆炸。任何输入都会很好
更新:
是的,选择的是我需要的。我必须添加一个 onInputChange 属性以使父级与输入的内容保持同步。