solid.js определяет контекст отслеживания (то есть эффект, который должен повторить) при чтении реактивного примитива (например, сигнала, меморандум), основанный на внутреннем глобальном стеке библиотеки. /> Есть ли какой -нибудь способ получить контекст отслеживания в Createeffect < /code>, а затем использовать этот контекст отслеживания при доступе к реактивному примитиву? < /p>
e.g. Что -то вроде этого: < /p>
const [data, setData] = createSignal();
createEffect(async () => {
const trackingContext = hypothetical_getTrackingContext();
await new Promise((res) => setTimeout(res, 100));
const trackedData = hypothetical_runWithTrackingContext(trackingContext, () => {
return data();
});
});
Я знаком с Getowner и Runwithowner и попытался экспериментировать с этим, однако, по -видимому, связаны с временем жизни и т. Д. И не контекст отслеживания в определенном эффекте. Пользовательский createeffect < /code> функция, которая до сих пор использует подавляющее большинство внутренних интерфейсов Solid.js и которая достигает моего желаемого результата? это: < /p>
class Effect {
constructor(...) {...}
track(callback) {...}
}
const [data, setData] = createSignal();
const effect = new Effect(...);
await new Promise((res) => setTimeout(res, 100));
effect.track(() => {
const trackedData = data();
});
Подробнее здесь: https://stackoverflow.com/questions/797 ... ming-reads