如何将状态从 reach-router 传递到 Link
How to pass state to Link from reach-router
更新后的代码仍然无法运行
无法在此处找到有助于解决我的问题的答案。
在我的播放列表组件中,我有一个链接到曲目的新路径的图像。我想将播放列表 ID 传递给曲目,以便它可以根据给定的 ID 显示曲目,但无论我怎么做,它都不适合我。
我的播放列表组件returns:
<Link to = '/tracks' state = {{playlist:playlist.id}}>
<img alt = "album"src={playlist.images.url}/>
</Link>
在我的轨道组件中,它正在执行以下操作:
export default class Tracks extends React.Component {
constructor() {
super();
this.state = {
playlistid: 0
};
}
componentDidMount() {
this.setState({
playlistid: this.props.location.state.playlistid
});
}
render() {
return (
<div>
<p>PlaylistID: {this.state.playlistid}</p>
</div>
);
}
}
谁能告诉我哪个组件有问题?抱歉,我对 React 还是很陌生
谢谢
为了将状态从 Reach 路由器传递给 Link 组件,您可以将状态作为单独的道具传递。 to
属性需要是一个字符串
<Link
to='/tracks'
state= {{
playlistid: playlist.id
}}
>
<img alt = "album"src={image.url}/>
</Link>
有关详细信息,请参阅 Link from Reach-router
的文档
编辑:
您实现 Link 组件的方式与 react-router Link
组件一起工作
你可以试试这个:
<Link to={{
pathname: `/tracks/${playlist.id}`, //I assume you tracked the tracklist state here as a props
}}>
<img alt = "album"src={image.url}/>
</Link>
更新后的代码仍然无法运行
无法在此处找到有助于解决我的问题的答案。
在我的播放列表组件中,我有一个链接到曲目的新路径的图像。我想将播放列表 ID 传递给曲目,以便它可以根据给定的 ID 显示曲目,但无论我怎么做,它都不适合我。
我的播放列表组件returns:
<Link to = '/tracks' state = {{playlist:playlist.id}}>
<img alt = "album"src={playlist.images.url}/>
</Link>
在我的轨道组件中,它正在执行以下操作:
export default class Tracks extends React.Component {
constructor() {
super();
this.state = {
playlistid: 0
};
}
componentDidMount() {
this.setState({
playlistid: this.props.location.state.playlistid
});
}
render() {
return (
<div>
<p>PlaylistID: {this.state.playlistid}</p>
</div>
);
}
}
谁能告诉我哪个组件有问题?抱歉,我对 React 还是很陌生
谢谢
为了将状态从 Reach 路由器传递给 Link 组件,您可以将状态作为单独的道具传递。 to
属性需要是一个字符串
<Link
to='/tracks'
state= {{
playlistid: playlist.id
}}
>
<img alt = "album"src={image.url}/>
</Link>
有关详细信息,请参阅 Link from Reach-router
的文档编辑:
您实现 Link 组件的方式与 react-router Link
组件一起工作
你可以试试这个:
<Link to={{
pathname: `/tracks/${playlist.id}`, //I assume you tracked the tracklist state here as a props
}}>
<img alt = "album"src={image.url}/>
</Link>