Допустим, мы отображаем выпадающий список и при выборе пользователь переходит на другую подстраницу через реагирующий маршрутизатор. Как мы можем восстановить выпадающий список при перезагрузке страницы с помощью активного маршрутизатора? Параметр projectNumber
доступен только в компоненте Project
. В некоторых других проектах я решил эту проблему, записав параметры маршрута в хранилище контекста или избыточности из дочернего компонента, но это, очевидно, не очень хорошее решение, правда?
export const Projects: React.FC = () => {
const { data, loading, error } = useSomeData()
const history = useHistory()
const onSelectProject = useCallback(
(projectNumber: unknown) => {
history.push(`/project/${projectNumber}`)
},
[history],
)
if (error) return <p>{error.toString()}</p>
return (
<>
<Select loading={loading} onChange={onSelectProject} placeholder="Select a project">
{data?.map((project) => (
<Option key={project.id} value={project.number}>
{project.name}
</Option>
))}
</Select>
<Route path="/project/:projectNumber" render={() => <Project />} />
</>
)
}