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.