我在if块中有一个react动画组件,如下所示;
import { CSSTransitionGroup } from 'react-transition-group'
......
......
......
......
render() {
return(
<div className="App"
{
this.state.isloading
? <div className="loader"></div>
: <CSSTransitionGroup
transitionName="example"
transitionEnterTimeout={1000}
transitionLeaveTimeout={750}
>
{this.state.hot_list.length > 0
? <Displaycont hot_list={this.state.hot_list} />
: null}
</CSSTransitionGroup>
}
</div>
)
}
这不会使动画仅呈现“Displaycont”组件。
如果我删除If块,动画将按预期呈现。我正在设计它,如图所示;
https://reactjs.org/docs/animation.html#low-level-api-reacttransitiongroup
我有什么想法可能做错了吗?
CSSTransitionGroup
应该始终安装,只有其子女必须有条件地呈现。
我不确定原因,但所有React文档示例都是这样做的。我想,这是因为CSSTransitionGroup
生命周期方法及其工作方式。
但是,这是你如何做到这一点:
render () {
const { isLoading, hot_list } = this.state
return (
<div className='App'>
{ isLoading ? <div className='loader' /> : null }
<CSSTransitionGroup
transitionName='example'
transitionEnterTimeout={1000}
transitionLeaveTimeout={750}
>
{ isloading && hot_list.length > 0 ? <Displaycont hot_list={hot_list} /> : null }
</CSSTransitionGroup>
</div>
)
}