#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 сам по себе является функцией, в которую я буду передавать эти параметры. Спасибо 🙂