老师这里不应该是PageList吗
来源:4-3 使用动态路由获取不同列表内容(3)
请你摘掉伪善的面具
2021-08-21 22:15:22
相关代码:
import React, { Component,Fragment} from 'react';
import ReactDom from 'react-dom';
import {Layout} from 'antd';
import { BrowserRouter,Route,Switch } from 'react-router-dom';
import AppHeader from './components/Header';
import PageList from './containers/List';
import Detail from './containers/Detail';
import 'antd/dist/antd.css';
import './style.css';
const { Header, Content, Footer } = Layout;
class App extends Component {
render() {
return (
<BrowserRouter>
<Layout style={{ minWidth: 1300, height: '100%' }}>
<Header className="header">
<AppHeader />
</Header>
<Content className="content">
<Switch>
<Route path='/detail' component={Detail} />
<Route path='/:id?' component={PageList} />
</Switch>
</Content>
<Footer className="footer">@copyright Dell-lee 2018</Footer>
</Layout>
</BrowserRouter>
)
}
}
ReactDom.render(<App />, document.getElementById('root'));
相关代码:
import React,{Component} from 'react';
import { List} from 'antd';
import axios from 'axios';
class PageList extends Component{
componentWillReceiveProps(nextProps){
const id=nextProps.match.params.id;
axios.get('http://www.dell-lee.com/react/api/list.json?id='+id).then(res=>{
this.setState({
data:res.data.data
});
})
}
constructor(props){
super(props);
this.state={
data:[]
}
}
render(){
return (
<List
style={{background:'#fff'}}
bordered
dataSource={this.state.data}
renderItem={item => (<List.Item>{item.title}</List.Item>)}
/>
)
}
componentDidMount(){
let url='http://www.dell-lee.com/react/api/list.json';
const id=this.props.match.params.id;
if(id){
url=url+'?id='+id;
}
axios.get(url).then(res=>{
this.setState({
data:res.data.data
});
console.log(res.data.data);
})
}
}
export default PageList;
我发现你路由这边还是List
相关代码:
<Route path='/:id?' component={PageList} /> //List? PageList?
1回答
同学你好, 使用PageList还是List都是可以的,因为List/index.js文件中使用export default PageList方法导出,所以import方式导入这里的名称可以自定义,只要前后使用时保持一致即可,如下:
有关模块的导入导出规则,同学可以回顾下前面的课程,加深理解与记忆。
祝学习愉快~
相似问题