将状态分配器作为对子组件的支持

时间:2019-07-03 03:15:48

标签: reactjs react-hooks

我可以将状态分配器(来自useState的第二个参数)传递给子组件。是反模式还是允许的做法?

例如。我有一个组件TextField。我到处都用它。而我需要的每一个细节都需要保存其价值。例如:

import { default as React, setState, useCallback } from 'react';
import { TextField } from '@component';

const SomeComponent = (props) => {
  const [value, setValue] = useState('');

 const handleChange = useCallback((e) => setValue(e.target.value), []);

  return (
    <div>
      <TextField onChange={handleChange} />
    </div>
  )
}

使用TextField时,到处都写handleChange很累...我想让这种情况简单化。

我可以将setValue传递给TextField作为道具(而不是添加onChange)并在TextField内部实现设置值吗?

// ...
  <TextField valueDispatcher={setValue} />
//...

1 个答案:

答案 0 :(得分:0)

是的

您可以将setValue作为道具传递给子组件。您可以在子组件中设置值。

Working Demo