老师,当我点击列表中的内容时切换不了不同的

老师,当我点击列表中的内容时切换不了不同的

src index.js

import React, {Component,Fragment} from 'react';

import ReactDom from 'react-dom';

import 'antd/dist/antd.css';

import {BrowserRouter,Route,Switch} from 'react-router-dom';

import { Layout } from 'antd';

import List from './containers/List/';

import Detail from './containers/Detail/';

import './style.css';

import AppHeader from './components/Header/'


const { Header, Footer, Content } = Layout;


class App extends Component{


      render() {

        console.log(this.props);

      return (

        <BrowserRouter>

      <Layout style={{minWidth:1100,height:'100%'}}>

               <Header className="header">

                  <AppHeader />

               </Header>

               <Content className="content">

                   <Switch>

                        <Route path='/detail' component= {Detail} />

                        <Route path='/:id' component={List} />  

                   </Switch>

               </Content>

               <Footer className="footer">@copyright  </Footer>

            </Layout>

       </BrowserRouter>

      )

      }





}




ReactDom.render(<App />,document.getElementById('root')); 

Header index.js

import React, {Component,Fragment} from 'react';

import {Link} from 'react-router-dom';

import { Menu,Icon} from 'antd';

import logo from './logo.png';

import './style.css';

class AppHeader extends Component{


    constructor(props){

      super(props);

      this.state = {

        list: [{

          id:1,

          Icon:"usergroup-delete",

          title:"VOA慢速英语"

        },{

          id:2,

          Icon:"idcard",

          title:"VOA常速英语"

        },{

          id:3,

          Icon:"dingding",

          title:"VOA英文教学"

        },{

          id:4,

          Icon:"google",

          title:"走遍美国"

        },{

          id:5,

          Icon:"wechat",

          title:"空中英语教室"

        },{

          id:6,

          Icon:"dribbble",

          title:"大家说英语"

        }]

      }

    }

    getMenuItems(){

      return this.state.list.map(item=>{

        return (

             <Menu.Item key={item.id}>

                  <Link to={`/${item.id}`}>

                       <Icon type={item.Icon}/>{item.title}

                  </Link>

             </Menu.Item>

          )

      })

    }

    render(){

    return(

    <Fragment>

               <img src={logo} className="app-header-logo"/>

               <Menu 

                   mode="horizontal"

                   className='app-header-menu'

                   >

                   {this.getMenuItems()}

               </Menu>

            </Fragment>

    )

    }

}


export default AppHeader;

List.js

import React,{ Component } from 'react';

import axios from 'axios';

import { List } from 'antd';

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(){

const id = this.props.match.params.id;

axios.get('http://www.dell-lee.com/react/api/list.json?id='+id)

.then(res =>{

this.setState({

data:res.data.data

});

})

}

}



export default PageList;

http://img1.sycdn.imooc.com//climg/5e7fefa009bedf9503200240.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕糖 2020-03-30 09:37:12

同学你好,老师这里测试是可以切换的,不知道是否是其他代码的影响,建议:可以将完整的代码粘贴过来。

祝学习愉快~

好帮手慕糖 2020-03-29 14:04:56

同学你好,是指点击点击上面的,下面切换对应的内容吗?

如下:老师这里使用同学粘贴的这部分代码进行测试,是可以切换的哦。请求的也是对应的内容。

http://img1.sycdn.imooc.com//climg/5e80398f09b63cda11900556.jpg

http://img1.sycdn.imooc.com//climg/5e803a460969847005380112.jpg

同学可以看下代码是否有保存,可以重新再测试下。若还是无法解决,可以将其他代码粘贴过来,看是否是其他代码的影响。

祝学习愉快~

  • 提问者 慕斯卡8226687 #1
    列表里的内容不会切换
    2020-03-29 19:00:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师