代码之家  ›  专栏  ›  技术社区  ›  shamon shamsudeen

React js:将组件导入路由

  •  2
  • shamon shamsudeen  · 技术社区  · 7 年前

    我在学校有这样的课

    class Topics extends React.Component {
    
        constructor(props){
            super(props);
            this.state ={
                url:props.match.url,
                path:props.match.path
            }
        }
        render(){
    
            return (<div>
            <h2>Topic</h2>
            <ul>
              {topics.map(({ name, id }) => (
                <li key={id}>
                  <Link to={`${this.state.url}/${id}`}>{name}</Link>
                </li>
              ))}
            </ul>
            <Route path={`${this.state.path}/:topicId`} component={TopicDetails}/>
          </div>)
    
        }
    }
    

    我在试着装东西 TopicDetails 路由中的组件 主题详细信息

    主题详细信息.js

    const TopicDetails = ({match}) => {
        const topic = topics.find(({ id }) => id === match.params.topicId);
    
        return (<div>
            <h2>Details</h2>
            <h2>{topic.name}</h2>
          <p>{topic.description}</p>
    
          </div>
          )
    
        }
    
    
    export default TopicDetails;  
    

    我的问题是如何正确添加导入的组件??

    1 回复  |  直到 7 年前
        1
  •  3
  •   Hemadri Dasari    7 年前

    由于您将TopicDetails导出为默认导出,因此可以像

    import TopicDetails from './TopicDetails'; //here specify the correct path of TopicDetails functional component
    

    完整的代码在这里

    import TopicDetails from './TopicDetails';
    class Topics extends React.Component {
    
        constructor(props){
            super(props);
            this.state ={
                url:props.match.url,
                path:props.match.path
            }
        }
        render(){
    
            return (<div>
            <h2>Topic</h2>
            <ul>
              {topics.map(({ name, id }) => (
                <li key={id}>
                  <Link to={`${this.state.url}/${id}`}>{name}</Link>
                </li>
              ))}
            </ul>
            <Route path={`${this.state.path}/:topicId`} component={TopicDetails}/>
          </div>)
    
        }
    }