我有一个呈现叠加模式的路线。 如果我从UI导航,我希望它能够进行动画制作, 并在从地址栏导航或刷新后作为静态加载。
我使用nodejs和react + react-router。
我考虑过使用我的通用redux设置来匹配这个问题的状态道具,但也许有一个更优雅的解决方案
谢谢!
答案 0 :(得分:1)
这可以通过测试prevPath
对象上的props.location
属性来实现
const [isFirstLoad,setIsFirstLoad] = useState(false)
const {location} = props
useEffect(()=> {
props.prevPath ? setIsFirstLoad(true) : setIsFirstLoad(false)
}, [location])
return <Modal animate={!isFirstLoad}/>
每个渲染UseEffect
将测试props.location
(类似于componentWillReceiveProps()
),以检查先前的路径是否不同。加载时,prevPath
属性将不存在,因此它将为false
。