私は基本的なタイマーを反応ネイティブにしようとしていますが、動作しません。私はコンソールにエラーは表示されません。単にsetInterval
を無視します。私はTimerMixinの問題をES6で読んでいます(サポートされていません)。あなたは、それは単にここに示した最も単純な形式では動作しないよう?,だけで基本的なsetInterval
タイマーを使いたいのであればsetIntervalもsetTimeoutも反応しませんネイティブES6
import React, { Component } from 'react';
import { AppRegistry, Text } from 'react-native';
class HelloWorldApp extends Component {
componentDidMount() {
console.log('COMPONENTDIDMOUNT')
//this.timer= <--//This doesn't work either
var timer = setInterval(() => {
console.log('I do not leak!');
}, 5000);
}
componentWillUnmount() {
console.log('COMPONENTWILLUNMOUNT')
clearInterval(timer);
}
render() {
return (
<Text>Hello world!</Text>
);
}
}
AppRegistry.registerComponent('HelloWorldApp',() => HelloWorldApp);
コンソールには何も表示されますか? – zerkms
あなたのリンクは明示的にブラウザのタイマーを実装していると言われています。私の推測では、これは 'ReferenceError'を持っているためコンパイルされていません:' componentWillUnmount'の 'timer'が定義されていません。 – Jack
あなたはtimer varがcomponentDidMount関数でのみ利用可能であることを理解しています。使用されている両方の関数にアクセスできるvarを作成する必要がありますが、問題はsetIntervalが決して実行されないことを示唆しています。 –