我有一个呈现叠加模态的路由。如果我从UI导航,我希望它能动画化,并且在从地址栏导航时或者在刷新之后被加载为静态。
我使用nodejs和react+react路由器。
我考虑过使用我的通用redux设置来匹配这个问题的状态道具,但也许有一个更优雅的解决方案
谢谢!
这可以通过在props.location
对象上测试prevPath
属性来实现
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
。