在react中从外部功能组件调用函数

问题描述 投票:0回答:2

假设我在功能组件之外有一个表单,如下所示:

   <TextField
        onChange={handleChange('name')}
        value={values.name}
        variant="outlined"
        label="Name"
        id="name"
        required
    />

我的组件是这样的:

   export default function App() {
        const handleChange = (prop) => (event) => {
           setValues({ ...values, [prop]: event.target.value });
        };
   }

如何从组件内部调用

handleChange()
函数?

reactjs react-props react-functional-component
2个回答
1
投票

您可以将

handleChange
函数作为 prop 传递给您的功能组件:

const MyComp = (props) => {
    ...
    return <TextField
        onChange={props.handleChange('name')}
        value={values.name}
        variant="outlined"
        label="Name"
        id="name"
        required
    />
}
// Reference function here.
<MyComp handleChange={handleChange}/>

1
投票

如果您有一个表单组件作为组件的子组件,那么您可以执行如下操作:-

  • ParentComponent.js
    :-
import ChildComponent from './ChildComponent'

export default function ParentComponent() {
  const handleChange = (prop) => (event) => {
    setValues({ ...values, [prop]: event.target.value })
  }

  return (
    <ChildComponent 
      handleChange={handleChange} 
    />
  )
}
  • ChildComponent.js
    :-
export default function ChildComponent({handleChange}) {
  return (
    <TextField
      onChange={handleChange('name')}
      value={values.name}
      variant="outlined"
      label="Name"
      id="name"
      required
    />
  )
}
© www.soinside.com 2019 - 2024. All rights reserved.