首页 > 解决方案 > 在 React useCallback 钩子中,参数从哪里进入回调函数

问题描述

假设我有一个这样的 useCallback 函数

export const useMenu = (id1, id2, id3) => useCallback(({row, column, id}, myProps) => {
    doSomething()
}, [id1, id2, id3]);

我正在调用这样的useMenu函数

const myMenu = useMenu(123, 345, 567);

所以我只是想了解我从哪里得到这一myProps 的值?

标签: reactjscallbackreact-hooks

解决方案


它们是myMenu稍后调用时必须传递给函数的参数,例如使用myMenu({ row: 123 }). 有关示例,请参见下面的代码段:

const useMenu = (id1, id2, id3) => React.useCallback(({row, column, id}, myProps) => {
    console.log('got row of', row);
}, [id1, id2, id3]);
const App = ({ id1, id2, id3 }) => {
  const myMenu = useMenu(123, 345, 567);
  React.useEffect(() => {
    myMenu({ row: 123 });
  }, []);
  
  return 'app';
};
ReactDOM.render(<App />, document.querySelector('.react'));
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div class="react"></div>

对于您的代码,请查看调用myMenu以了解参数的确切来源。


推荐阅读