Reactjs 将状态分派器作为道具传递给子组件

Reactjs 将状态分派器作为道具传递给子组件,reactjs,react-hooks,Reactjs,React Hooks,我可以将状态分派器(来自useState的第二个参数)作为prop传递给子组件吗。这是反模式还是允许的做法 比如说。我有一个组件TextField。我到处都在用它。在我需要的每一个地方都保存它的值。例如: import { default as React, setState, useCallback } from 'react'; import { TextField } from '@component'; const SomeComponent = (props) => { c

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

比如说。我有一个组件
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>
  )
}
是。

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

是。

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


谢谢你的回答。我知道它是有效的。但react不建议将一个组件的状态从另一个组件更改为其他组件。你认为这是不是反模式?据我所知,没有这样的规则/建议,你不能将一个组件(更准确地说,父组件)的状态从另一个组件(子组件)更改,不改变子组件的状态。当您有一个父组件和多个子组件时,概念上还有一个提升状态的链接。在每个子组件中都有相同的状态变量,在这种情况下,需要将该状态提升到父组件。这并不意味着您不能从子组件更改。谢谢您的回答。我知道它是有效的。但react不建议将一个组件的状态从另一个组件更改为其他组件。你认为这是不是反模式?据我所知,没有这样的规则/建议,你不能将一个组件(更准确地说,父组件)的状态从另一个组件(子组件)更改,不改变子组件的状态。当您有一个父组件和多个子组件时,概念上还有一个提升状态的链接。在每个子组件中都有相同的状态变量,在这种情况下,需要将该状态提升到父组件。这并不意味着您不能从子组件更改。通过道具向下传递
setValue
可以吗?(我相信没关系)2。引入具有不同逻辑的定制道具而不是基于标准DOM属性的道具(如
onChange
onClick
)可以吗?(我相信这会影响可维护性)我在这里看到两个不同的问题:1。通过道具向下传递
setValue
可以吗?(我相信没关系)2。引入具有不同逻辑的定制道具而不是基于标准DOM属性的道具(如
onChange
onClick
)可以吗?(我相信这会影响可维护性)
// ...
  <TextField valueDispatcher={setValue} />
//...