首页 > 解决方案 > 如何将变量的最新值传递给函数 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));
    }
};

标签: javascriptreactjsreact-nativestate

解决方案


推荐阅读