我需要使用react-router将一个页面中的值传递给另一个页面。
我已经尝试过这种方式:
<li>
<A
className="btn btn-link btn-sm"
href={{ pathname: Routes.detail_page, search: `?_id=${C.Code}`, state: this.props.current }}>
{ 'Open' }
</A>
</li>
我会将this.props.current传递给详细信息页面。
在另一页中,如果我尝试在componentDidMount()中打印this.props.current
,则结果不确定(当然,在第一页中,该值已参数化)。
constructor(props){
super(props);
this.state = {
};
}
componentDidMount(){
let C = this.props.current
console.log("C is: ", C) // this is undefined
this.updateIsDeletableState()
}
我该怎么办?
答案 0 :(得分:1)
您必须确保已在Route
// file-where-you-define-routes.js
...
<Switch>
<Route path={`your-path/:id`} component={YourComponent} />
</Switch>
...
然后使用钩子useParams
获取参数
function YourComponent() {
const { id } = useParams();
let C = id;
console.log("C is: ", C) // this should be defined now
...
}
或者如果您使用类组件this.props.match.params.id
class YourComponent extends Component {
...
componentDidMount(){
let C = this.props.match.params.id; // match
console.log("C is: ", C) // this should be defined now
this.updateIsDeletableState()
}
}