Javascript 如何绑定函数而不是创建新函数?

Javascript 如何绑定函数而不是创建新函数?,javascript,reactjs,Javascript,Reactjs,我是新来的。这里我有一个功能组件。其中我有 const bginfo = useLocalStore(() => ({ status: bgStatus, setStatus(val) { bginfo.status = val; } })); return ( <div className={css.root}> <Select onChange={(event) => bginf

我是新来的。这里我有一个功能组件。其中我有

const bginfo = useLocalStore(() => ({
      status: bgStatus,
      setStatus(val) {
        bginfo.status = val;
      }
    }));
return (
  <div className={css.root}>
    <Select
      onChange={(event) => bginfo.setStatus(event.target.value)}
      value={bginfo.status}
      id="bgStatus"
    />
const bginfo=useLocalStore(()=>({
状态:bgStatus,
设置状态(val){
bginfo.status=val;
}
}));
返回(
bginfo.setStatus(event.target.value)}
值={bginfo.status}
id=“bgStatus”
/>

因此,在这里,我不想创建新实例,而是想
在这里绑定函数,而不是创建新实例。


我该怎么做?有人能帮我吗?

创建一个新函数并传递给onChange,如果与
onChange
/
onClick一起使用,它会自动传递
事件

setStatus = (event) => {
  bginfo.setStatus(event.target.value);
}

<Select
  onChange={setStatus}
  value={bginfo.status}
  id="bgStatus"
/>
setStatus=(事件)=>{
bginfo.setStatus(事件、目标、值);
}
这里有一个来自React的官方例子

函数ActionLink(){
函数handleClick(e){
e、 预防默认值();
log('已单击链接');
}
返回(
);
}

@ganesh这可能会导致一些不必要的副作用。最好还是传递事件和所有函数调用。还可以使用
event.preventdefault()
作为使用
onClick
@AdamHinckley执行此操作时防止不必要的重新渲染功能的第一行,因此,我对此没有问题,您介意留下一个关于“不必要的副作用”的示例或链接吗?:)您在按钮上尝试过吗
preventdefault()
防止浏览器在单击页面时重新加载页面。另外,如果你不为onClick做一个不规则的功能,浏览器会因为太多的重新渲染而崩溃。@AdamHinckley我的意思是,我不认为自动获取事件会导致任何不必要的副作用,正如React文档中正式声明的那样,我认为这没有任何问题。检查我的更新。对于
preventdefault()
,您是对的,但是否使用它是op的选择。文档中也有没有它的例子。
function ActionLink() {
  function handleClick(e) {
    e.preventDefault();
    console.log('The link was clicked.');
  }

  return (
    <a href="#" onClick={handleClick}>
      Click me
    </a>
  );
}