Потери функции Именно этот контекст при прохождении в Tanstack/React-Query-Devtools в качестве Queryfn [дублировать]Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Потери функции Именно этот контекст при прохождении в Tanstack/React-Query-Devtools в качестве Queryfn [дублировать]

Сообщение Anonymous »

Я использую "@tanstack/react-query-devtools": "^5.69.0" в моем проекте React. И я условен один из аргументов, связывая его с этим контекстным объектом функции. Простыми словами, если мне нужно отправить аргумент, я связываю его с помощью функции .bind () .
Проблема:
Проблема заключается в том, что по какой -то причине функция, которую я предоставляет, не может получить доступ к значению, даже если в Chrome Devtools при отладке я могу видеть, что объект прикреплен как [связанный]] к моей функции. />file1.js

Код: Выделить всё

export const bindContext = (fn, id) => {
return id ? fn.bind({ id }) : fn;
};
file2.js

Код: Выделить всё

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
});
file3.js
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»