我试图使用间隔将我的状态更新为下一个数组索引,但这是一个很难的事。有人可以帮忙吗?
arrayCount() {
let count = 0;
let sliced = this.state.data.slice();
this.setState({
data: sliced[count++],
})
}
componentDidMount() {
let timer = setInterval(this.arrayCount, 1000);
}
答案 0 :(得分:1)
您没有将func addSSChildViewController(child:NSViewController){
let subView = child.view;//Child
let parent = self.view;//Parent
self.addChildViewController(child)
parent.addSubview(subView)
绑定到正确的上下文。试试这个
arrayCount
答案 1 :(得分:0)
有几种方法可以达到你想要的效果,正如其他人提到的那样,你忘记了arrayCount
不知道你用this
指的是什么。您需要明确地提供它,否则它将从自己的范围中获取它。在React中,通常有两种方法可以在构造函数中执行此操作:
class MyComponent extends Componenet {
constructor(props) {
super(props);
this.arrayCount = this.arrayCount.bind(this);
}
componentDidMount() {
let timer = setInterval(this.arrayCount, 1000);
}
arrayCount() {
let count = 0;
let sliced = this.state.data.slice();
this.setState({
data: sliced[count++],
});
}
...
这样可以避免每次使用该方法时都必须.bind(this)
。
另一种方法(如果你在配置中启用了这样的语法),则不那么详细,你需要做的就是:
class MyComponent extends Componenet {
componentDidMount() {
let timer = setInterval(this.arrayCount, 1000);
}
arrayCount = () => {
let count = 0;
let sliced = this.state.data.slice();
this.setState({
data: sliced[count++],
});
}
...
正如您将注意到arrayCount
已被制作成箭头函数,该函数不会从抓取this
的位置创建新的上下文。这意味着现在从外部范围中抓取this
,在这种情况下是MyComponent
类。