2016-08-07 2 views
0
  1. 私はreact.jsを学ぶ初心者です。毎秒ボールのクラスを変更したいですか?1秒は「オン」、もう1つはオフです。
  2. setIntervalを使用しようとしていますが、エラーがあります。Error: Invariant Violation: EzLampComp.render(): A valid ReactComponent must be returned.
  3. 私のコードはこちらです。の解き方 ??

EZ-ランプスタイル:react.js毎秒ボールのクラスを変更するにはどうすればよいですか?

.ez-lamp{ 
    display : inline-block; 
    margin : 5px; 
    width : 30px; 
    height : 30px; 
    border-radius : 50%; 
} 
.ez-lamp.on{ 
    opacity : 1; 
    background : -webkit-radial-gradient(30% 30%,white 5%,red 95%); 
} 
.ez-lamp.off{ 
    opacity : 0.5; 
    background : -webkit-radial-gradient(30% 30%,#888 5%,red 95%); 
} 

Ezlamp成分:

答えて

3
var EzLampComp = React.createClass({ 
    render : function(){ 
    var onoff = this.props.onoff;     
    setInterval(function(){ 
     if(onoff="on") 
     return <span className = "ez-lamp off"></span>; 
     else 
     return <span className = "ez-lamp off"></span>; 

    },1000);          
    } 
}); 
ReactDOM.render(
    <EzLampComp onoff="on"/> , //JSX 
    document.querySelector("#content")); 

のsetIntervalはcomponentDidMountから呼び出されるべきであるとのみ状態を切り替えなければなりません。

getInitialState() { 
    return { 
    onoff: this.props.onoff 
    } 
} 

componentDidMount() { 
    setInterval(function() { 
    this.setState({ 
     onoff: !this.state.onoff 
    }, 1000); 
    } 
} 
関連する問題