javascript - 如何将变量的最新值传递给函数 ReactJS
问题描述
我有AsyncSelect
一个组件的内部和loadHelper
它之外的功能。我想将 asyncSelect 中写入的最新值传递给loadHelper
函数,如果它与之前的输入不匹配,则返回 null,所以我有 currentInput
状态并将其值传递给 loadHelper,但我认为它不是将变量的最新值传递给函数的正确方法。一个人告诉我,由于 currentInput 是一个原始变量,它不会以这种方式工作。这里应该修复什么?
const [currentInput, setInput] = useState<string>("");
const filterSearch = (value: string) => {
return Options?.filter(i => i.label.includes(value));
};
const loadOptions = (inputVal, callback) => {
return loadHelper(inputVal, callback, filterSearch, currentInput);
};
-----------------------------------------------------------
<AsyncSelect
loadOptions={loadOptions}
defaultOptions
onChange={(v: { value: number; label: string }) =>
getChangeFn("userId")(v.value)
}
onInputChange={setInput}
/>
const loadHelper = (
inputVal: string,
callback,
filterSearch: (string) => any[],
currentInput: string
) => {
if (currentInput !== inputVal) return null;
etc...
} else {
callback(filterSearch(inputVal));
}
};
解决方案
推荐阅读
- ruby-on-rails - 缓存搜索/存储库的 Github API 响应
- sql-server - Azure SQL Server 托管实例
- c - __attribute__((weak) ) 函数导致未定义的引用
- python - Scikit-multilearn MEKA-Wrapper:meka.classifiers.multilable.meta.CM
- html - HTML/CSS:缩小单元格及其内容
- javascript - 具有可变数量表头的 DataTables 渲染函数
- c - C-Linked-List:如何将“Head”保存在“Temp”变量中,这样我就不必每次都向后遍历
- hazelcast-jet - Hazelcast-jet 的最大聚合
- r - 为拟合的 SMA 模型编写线性和指数方程
- powershell - 从规范名称和时间戳固定 DN 始终设置为:1/01/1601 11:00:00 AM?