useEffect 中 EFFECT 本身的参数到底是什么?
What exactly IS the parameter to the EFFECT itself in useEffect?
仍在与 useEffect
战斗。
我读了一些东西,以为我最后掌握了依赖项数组,但显然不是。
说,我有这个:
const StructRequestable = ({ struct, state, requestDataMap }) => {
useEffect(
() => {
console.log("Redux state is", state);
},
[state]
);
return (
<div> Soggy pasta</div>
)}
...
const mapStateToProps = state => {
return {
state: state
}
};
export default connect(mapStateToProps, null)(StructRequestable);
我希望它能作为 state
更改的记录器,而不是其他任何东西!
现在,为什么这个(下面)不起作用,有什么区别?我认为下面的版本是正确的,但显然添加此参数会改变内部版本?跟影响范围有关系吗?感谢您的任何提示!
const StructRequestable = ({ struct, state, requestDataMap }) => {
useEffect(
(state) => { // <<<<<<<<<<<<<<<<<<<<ADDED STATE HERE. NOTHING ELSE.
console.log("Redux state is", state);
},
[state]
);
return (
<div> Soggy pasta</div>
)}
...
const mapStateToProps = state => {
return {
state: state
}
};
export default connect(mapStateToProps, null)(StructRequestable);
这被称为 variable shadowing,这更像是一个通用的编程概念,因此与挂钩或 useEffect
行为无关。如果您有一个在最内层范围内命名的变量,它将覆盖任何具有相同名称的外部范围变量。
useEffect
回调不带参数,因此 state
在您的日志中我认为会显示为 undefined
.
仍在与 useEffect
战斗。
我读了一些东西,以为我最后掌握了依赖项数组,但显然不是。
说,我有这个:
const StructRequestable = ({ struct, state, requestDataMap }) => {
useEffect(
() => {
console.log("Redux state is", state);
},
[state]
);
return (
<div> Soggy pasta</div>
)}
...
const mapStateToProps = state => {
return {
state: state
}
};
export default connect(mapStateToProps, null)(StructRequestable);
我希望它能作为 state
更改的记录器,而不是其他任何东西!
现在,为什么这个(下面)不起作用,有什么区别?我认为下面的版本是正确的,但显然添加此参数会改变内部版本?跟影响范围有关系吗?感谢您的任何提示!
const StructRequestable = ({ struct, state, requestDataMap }) => {
useEffect(
(state) => { // <<<<<<<<<<<<<<<<<<<<ADDED STATE HERE. NOTHING ELSE.
console.log("Redux state is", state);
},
[state]
);
return (
<div> Soggy pasta</div>
)}
...
const mapStateToProps = state => {
return {
state: state
}
};
export default connect(mapStateToProps, null)(StructRequestable);
这被称为 variable shadowing,这更像是一个通用的编程概念,因此与挂钩或 useEffect
行为无关。如果您有一个在最内层范围内命名的变量,它将覆盖任何具有相同名称的外部范围变量。
useEffect
回调不带参数,因此 state
在您的日志中我认为会显示为 undefined
.