Проблема:
Проблема заключается в том, что по какой -то причине функция, которую я предоставляет, не может получить доступ к значению, даже если в Chrome Devtools при отладке я могу видеть, что объект прикреплен как [связанный]] к моей функции. />file1.js
Код: Выделить всё
export const bindContext = (fn, id) => {
return id ? fn.bind({ id }) : fn;
};
Код: Выделить всё
export const useFetchBlogs = ( id) => useQuery({
queryKey: ['blogsList', id],
queryFn: () => bindContext(fetchBlogsFn, id)(),
enabled: true,
refetchOnMount: true,
refetchOnWindowFocus: false,
staleTime: 10 * 60 * 1000, // 10 minutes
retry: 1 // retry only once if query fails
});
export const fetchBlogsFn= ()=> {
console.log('useFetchBlogs called', this); // getting this as undefined in the devtools
const queryConfig = {
... this?.id ? { params: { blogId: this.id } } : {}
}
return new Promise((resolve, reject) => {
httpService.load(URLS.PRIORITIES, queryConfig).then(
res => {
const transformedData = dropdownOptions(res);
resolve(transformedData);
},
err => reject(err)
);
});
};
< /code>
Что происходит?
Я вижу во время отладки, что объект, содержащий идентификатор, прикреплен как [[boundthis]] к возвращаемой функции, но как только вызовет функции и отладчик входит в функцию, этот контекст становится неопределенным < /p>
. Контекст.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... devtools-a