В перехватчике React useCallback откуда параметры поступают внутрь функции обратного вызова

#reactjs #callback #react-hooks

#reactjs #обратный вызов #реагирующие перехваты

Вопрос:

Предположим, у меня есть функция обратного вызова, подобная этой

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

И я вызываю useMenu функцию следующим образом

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

Итак, я просто хотел понять, откуда я получаю значение этой строки, столбца и myProps?

Комментарии:

1. Вы не можете использовать useCallback так… Прочитайте о правилах перехватов, этот код недопустим.

Ответ №1:

Это параметры, которые должны быть переданы 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 , чтобы точно узнать, откуда берутся параметры.

Комментарии:

1. ОК. Теперь я понял, что MyMenu сам по себе является функцией, в которую я буду передавать эти параметры. Спасибо 🙂