问题是当第一次渲染组件时,我得到了undefined的值。 然后,当我单击浏览器上的上一个按钮时,便得到了该值。 为什么会发生??????
答案 0 :(得分:1)
缺少默认状态,因此请使用componentDidMount生命周期并在componentDidMount内部调用默认状态。
答案 1 :(得分:0)
在网址中发送参数。
定义路线
<Route path="/bookingform/:id" component={BookingForm} />
,然后在组件中,您可以通过以下方式获取ID props.match.params.id
答案 2 :(得分:0)
如果我能看到您如何编写组件,这将有所帮助。
要使此代码正常工作,这应该有所帮助。
app/src/two
答案 3 :(得分:0)
您可以将state
传递给push
方法作为第二个参数,push(url, state)
而不是push({ pathname, state})
。下面的示例
// Home.jsx
const Home = (props) => {
// the second value in push method is the state
handClick = () => props.history.push('/login', { comingFromHome: true })
return <HomeBigOrSmallComponent onClick={handleClick} />
}
然后访问状态
// Login.jsx
const Login = (props) => {
// now let's log our state
useEffect(() => console.log(props.history.location.state.comingFromHome), [])
return <LoginBigOrSmallComponent onClick={handleClick} />
}
History objects通常具有以下属性和方法: