【发布时间】:2020-04-24 23:01:12
【问题描述】:
我正在尝试使用 ':group' 将状态传递到以下路由。这可能吗?
Router.js 文件(部分):
const [ groups, setGroups ] = useState([])
useEffect( () => {
const result = () => {
fetch("http://localhost:5000/groups", {method: "GET"})
.then(response => response.json())
.then(data => setGroups(data.groups))
.catch(err => {
console.error(err)
})
}
result()
}, [])
return (
<Route
exact
path={`/groups/:group`}
render={ routeProps =>
<GroupDetails
routeProps={routeProps}
/> }
/>
)
GroupDetails 页面:只需放置必要的代码
const GroupDetails = ({routeProps, userId }) => {
const [ details, setDetails ] = useState(routeProps.location.state)
现在,在我的群组页面中,如果我点击特定群组,它会将我带到该页面。但如果输入“www.website.com/groups/groupname”,它将是未定义的,因为 routeProp.location.state 中没有任何内容。
我正在考虑只在顶部组件设置一个 groupId 状态,并在每次单击组页面时执行 setGroupId,并将其传递给路径名 /groups/${groupId}。我可以看到这个工作,但我想知道我是否可以使用 React Router 来做到这一点。
谢谢
【问题讨论】:
标签: javascript reactjs react-router react-router-dom