import {Component, Output, EventEmitter} from 'angular2/core';
import 'rxjs/add/operator/debounce';
import 'rxjs/add/operator/debounceTime';
@Component({
selector: 'debounced-component',
template: `
<div>
<h1>Debounced Outer Component</h1>
// export class InnerComponent{
// @Output() innerChanged: new EventEmitter<string>();
// onKeyUp(value){
// this.innerChanged.emit(value);
// }
// }
<input #inner type="text" (innerChange)="onInnerChange(inner.value)">
</div>
`
})
export class DebouncedComponent {
@Output() outerValueChanged: new EventEmitter<string>();
constructor() {}
onInnerChange(value) {
this.outerValuedChanged.emit(value); // I want to debounce() this.
}
}
要去除值,可以使用主语。主体既是可观察的,也是观察者。这意味着您可以将其视为可观察的,并向其传递值。
您可以利用这一点将新的值从内部组件传递给它,并以这种方式消除它。
export class DebouncedComponent {
@Output() outerValueChanged: new EventEmitter<string>();
const debouncer: Subject<string> = new Subject<string>();
constructor() {
// you listen to values here which are debounced
// on every value, you call the outer component
debouncer
.debounceTime(100)
.subscribe((value) => this.outerValuedChanged.emit(value));
}
onInnerChange(value) {
// send every value from the inner to the subject
debouncer.next(value);
}
}
这是未经测试的伪代码。您可以在这里看到这个概念的工作示例(http://jsbin.com/bexiqeq/15/edit?js,console)。它没有棱角,但概念保持不变。
constructor() {
// you listen to values here which are debounced
// on every value, you call the outer component
debouncer
.pipe(debounceTime(100))
.subscribe((value) => this.outerValuedChanged.emit(value));
}
这是我现在的效果,拖动时会抖动,并且点击图例后都会执行一次这个动画: 下面复现代码的gif图: echarts 编辑器 如何给这个动画去抖呢? 其次: 有更好的动画效果推荐吗? 点击图例后都会执行一次这个动画,这个怎么修改呢?
问题内容: 我被困住了。我在单独的文件上有几个单独的组件。如果我在main.jsx中渲染它们,如下所示: 一切正常,但我想知道这是否是一个好习惯?也许可以做一些像只有一个ReactDom.render这样的事情: 我尝试了各种LandingPageBox变量,以某种方式包括了其他两个组件,但没有运气。它们有时在页面外渲染,依此类推。我认为应该看起来像这样: 但是此代码仅呈现PageTop和Page
问题 你想只执行某个函数一次,在开始或结束时把多个连续的调用合并成一个简单的操作。 解决方案 使用一个命名函数: debounce: (func, threshold, execAsap) -> timeout = null (args...) -> obj = this delayed = -> func.apply(obj, args) unless exe
问题内容: 我在上下文中有如下语言设置 我的应用程序代码如下所示 我的页面具有切换语言的组件 在这种情况下,需要更新上下文以将语言更改为“ jp”,如下所示 如何从LanguageSwitcher组件内部更新上下文? 问题答案: 挂钩是在16.8.0中引入的,因此以下代码要求最低版本为16.8.0(向下滚动以获得类组件示例)。CodeSandbox演示 1.为动态上下文设置父状态 首先,为了拥有可