0
如何通過setInterval
使元素動態變化狀態? 試圖呈現在隨機位置的元素,並嘗試動畫位置的變化如下:如何在setState上製作ReactCSSTransitionGroup動畫元素?
var Elem = React.createClass({
render: function() {
return (
<h1 className="elem">
Hello, {this.props.name} !
</h1>
);
}
});
var MainContainer = React.createClass({
componentDidMount: function() {
setInterval(this.shf, 777);
},
getInitialState: function() {
return {source: []};
},
shf: function() {
var source = this.props.source.sort(function() {
return .5 - Math.random();
});
this.setState({
source: source
});
},
render: function() {
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
var Elems = this.state.source.map(function (elem, i) {
return (
<ReactCSSTransitionGroup key={i * 10}
transitionName="example"
transitionAppear={true} transitionAppearTimeout={500}
transitionEnter={true} transitionLeave={true}>
<Elem key={i} number={i} name={elem}/>
</ReactCSSTransitionGroup>
);
}, this);
return (
<div>
{Elems}
</div>
);
}
});
ReactDOM.render(<MainContainer source={["bill", "bob", "sam", "john", "smith"]}/>,
document.getElementById('container'));
與風格CodePen鏈接:http://codepen.io/anon/pen/ZOQmJX
這是動畫渲染第一次,但不是在每一個國家的變化,如何實現它?
的解釋有一點是永遠不會壞... – idmean
感謝,但這並沒有通過'使要素在重新渲染動畫this.shf()' –