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} />
//...