我有一个问题。请帮帮我。 我有 ko.compulated,它有一个检查 ko.isObservable 变量,我需要 ko.compulated 不对这个变量的更改使用react。 请参阅示例:
ko.computed(function() {
if ( ko.isObservable(test.peek()) ) {
console.log('TRUE');
}
});
-------- 或 --------
ko.computed(function() {
if ( ko.isObservable(test).peek() ) {
console.log('TRUE');
}
});
我有错误: 无法读取 null 的属性“peek”
如果我这样做:
ko.computed(function() {
var testTest = ko.isObservable(test) ? test.peek() : false;
if ( testTest ) {
console.log('TRUE');
}
});
ko.compated 仍然会对“测试”上的更改使用react。
ko.compulated 如何不对这个变量的更改使用react?
最佳答案
如果您想重新计算“测试”值更改的计算结果,并且不知道“测试”是否可观察:
ko.computed(function() {
if ( ko.unwrap(test) ) {
console.log('TRUE');
}
});
我也不太明白 - 为什么你在计算中使用 peek() ?这可以防止在“测试”值发生变化时重新计算计算值。
更新
我不想对“测试”值变化使用react:
ko.computed(function() {
var testValue = ko.isObservable(test) ? test.peek() : test;
if ( testValue ) {
console.log('TRUE');
}
});
关于javascript - knockout - ko.compated 使用 ko.isObservable 和 peek(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220481/