Я пытаюсь передать состояние на следующий маршрут, используя ': group'. Это возможно?
Маршрутизатор. 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)
Прямо сейчас со страницы моей группы, если я нажму указанную группу c, она перейдет на страницу. Но если ввести «www.website.com/groups/groupname», это будет неопределенным, потому что нет ничего в routeProp.location.state.
Я думаю о том, чтобы просто установить состояние groupId в верхнем компоненте и выполнять setGroupId каждый раз, когда группа страница щелкается и передается в путь как /groups/${groupId}
. Я мог видеть, как это работает, но мне интересно, могу ли я использовать React Router для этого.
Спасибо