Javascript 如何包装函数以添加新参数

Javascript 如何包装函数以添加新参数,javascript,reactjs,react-select,Javascript,Reactjs,React Select,我有一个组件,它需要一个类似函数的属性来发送参数“value” function myLoadOptions(value) { fetch( (...) .then( (...) return data.options) } <Component loadOptions = myLoadOptions /> 函数myLoadOptions(值){ 获取(…) 。然后(…)返回数据。选项) } 但是我需要添加o wrap函数来添加如下新参数: functio

我有一个组件,它需要一个类似函数的属性来发送参数“value”

function myLoadOptions(value)  {
    fetch( (...)
    .then( (...) return data.options)
}


<Component
loadOptions = myLoadOptions

/>
函数myLoadOptions(值){
获取(…)
。然后(…)返回数据。选项)
}
但是我需要添加o wrap函数来添加如下新参数:

function myLoadOptions(table, value)  {
    fetch( (...)
    .then( (...) return data.options)

}
let table = 'customers';
<Component
loadOptions = myLoadOptions(table)
/>
<Component
  loadOptions={myLoadOptions.bind(null, table)}
/>
函数myLoadOptions(表,值){
获取(…)
。然后(…)返回数据。选项)
}
let table=‘客户’;
但它不起作用,loadOptions不按表读取,有没有一种包装方式可以做到这一点

有关原始组件的更多信息:

从'react select'导入{Async};
/*
*假设API返回如下内容:
*常量json=[
*{值:'1',标签:'1'},
*{值:'two',标签:'two'}
*   ]
*/
const getOptions=(输入)=>{
返回fetch(`/users/${input}.json`)
。然后((响应)=>{
返回response.json();
})。然后((json)=>{
返回{options:json};
});
}

渲染中尝试以下操作:

let table = 'customers';
...
<Component loadOptions={() => myLoadOptions(table) }/>
let table='customers';
...
myLoadOptions(表格)}/>

尝试将第一个参数绑定到函数,如下所示:

function myLoadOptions(table, value)  {
    fetch( (...)
    .then( (...) return data.options)

}
let table = 'customers';
<Component
loadOptions = myLoadOptions(table)
/>
<Component
  loadOptions={myLoadOptions.bind(null, table)}
/>

另一个选项是包装器,就像margaretkru建议的那样,但要通过第二个参数,需要做一些细微的更改:

<Component loadOptions={(value) => myLoadOptions(table, value) }/>
myLoadOptions(表,值)}/>

Do request in ComponentDidmount,然后Do SetState,并将此状态传递给组件的道具谢谢,但myLoadoptions需要参数等值…,我已经用原始组件的信息更新了我的问题。我不确定您到底想实现什么。是否需要调用
myLoadoptions
并传递结果作为
props
?不完全是,解决方案是纯javascript,请阅读另一个答案请阅读另一个解决方案:const generateOptionsFunc=tablename=>input=>{return fetch(..)}const loadOptions=generateOptionsFunc(“用户”),是否相同?