Реагируйте: создание динамического маршрута на основе реквизита - PullRequest
0 голосов
/ 26 июня 2019

Я получаю некоторые данные с сервера, которые я сопоставляю с субкомпонентами в моем реактивном проекте.

componentDidMount() {
    axios.get('http://localhost:5000/machinelearning')
    .then(res => this.setState({projects: res.data, isLoading: false}))  
}


...
const projects = this.state.isLoading ? <CircularProgress color="secondary" size={200}/> : this.state.projects.projects[0].map((project, i) =>{
    const projectObj = Object.assign({}, project)
    console.log(projectObj)
    return(
    <div style={{padding: '15px'}} key={i+1}>
        <MachineLearningProject project={projectObj} />
    </div>

внутри каждого компонента я хочу создать динамический маршрут, который связывается с компонентом с тем же именем, переданным с сервера.

Я создаю динамическую ссылку на изображение на моем компоненте.

<Link to={`${props.project.name}`} >
  <CardMedia
    className={classes.media}
    image={`data:image/jpeg;base64,${props.project.picture}`}
    title="Picture"
  />
  </Link>

с динамическим маршрутом внизу компонента

 <Route path="/:project" 
component={ChatBot} //this component is hardcoded for testing purposes 
/>

в идеале я хочу, чтобы это выглядело так

но нигде не нравится, что я делаю не так?

1 Ответ

0 голосов
/ 26 июня 2019

Вам необходимо обновить динамический маршрут компонента до

<LinkContainer to={props.project.name}>
      <Button> Label Stuff </Button>
</LinkContainer>

В идеале ваш App.js должен обсудить, какой компонент загружать, основываясь на ссылке, поскольку там находится логика маршрутизатора.

<Router>
    <Switch>
        <Route path={"Your Path"} component={"You Component"} />
    </Switch>
<Router>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...