Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 手动触发onChange事件_Javascript_Reactjs - Fatal编程技术网

Javascript 手动触发onChange事件

Javascript 手动触发onChange事件,javascript,reactjs,Javascript,Reactjs,我想手动调用我的onChange 这是我使用onChange进行的选择(我将onChangeSelect作为来自父组件的道具传递) 这是父组件中的onChangeSelect return( <Form Control disabled={disabled} <NativeSelect ref={ref} onChange={onChangeSelect}> ... <Child onChangeSelect={(e) => roo

我想手动调用我的onChange

这是我使用onChange进行的选择(我将onChangeSelect作为来自父组件的道具传递)

这是父组件中的onChangeSelect

return(
   <Form Control disabled={disabled}
      <NativeSelect ref={ref} onChange={onChangeSelect}>
       ...
<Child onChangeSelect={(e) => rootChange(e)}>

这里最简单的解决方案是更改
rootChange
函数的定义,以接受
值,而不是
事件本身

const rootChange = value => { setRootSelect(value.split(',')); }

// In parent:
<Child onChangeSelect={rootChange}>

// Select
<NativeSelect ref={ref} onChange={(e) => onChangeSelect(e.target.value)}>

我是否使用ref触发此onChange?否则,我只会得到:“onChange”并没有定义。您将
onChange
作为道具传递,对吗?直接调用那个函数就行了。我不是作为道具传递它,而是作为道具传递onChangeSelect。对不起,如果我误解了。您可以致电
onChangeSelect
,然后在应答中进行更改
const rootChange = e => { setRootSelect(e.target.value.split(',')); }
const rootChange = value => { setRootSelect(value.split(',')); }

// In parent:
<Child onChangeSelect={rootChange}>

// Select
<NativeSelect ref={ref} onChange={(e) => onChangeSelect(e.target.value)}>
onChangeSelect(whateverValueYouWant); // notice that you need the brackets when calling the function.