账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react-router v4 如何静态传值给子组件
    39
    0

    我是从Vue转过来的,可能思路有点受限吧,如果有其他思路请指正

    在我想对一个组件进行多次渲染时,需要传入一个id值来让组件渲染不同内容,
    但是<Route>没办法静态的传值给子组件

    class Home extends Component{
      render(){
        let listData = Object.values(this.props.directory);
        return(
          <div className="home">
              <ul className="row home_content">
                {
                  listData.map((list, key) => (
                    <li className="ome_list" key={key}>
                      <Route exact path="/" component={Label} listid={list.id}/>
                    </li>
                  ))
                }
              </ul>
          </div>
        )
      }
    }

    子组件

    class Label extends Component{
      render(){
        const list = this.props.directory[this.props.listid];
        return(
          <div className="mlabel">
            <h3 className="mlabel_title">{list.title}</h3>
            <ol className="mlabel_content">
              <li className="mlabel_content_list">list.text[0]</li>
              <li className="mlabel_content_list">list.text[1]</li>
            </ol>
          </div>
        )
      }
    }

    我的思路是在Home组件 <Route>里 传入listid给子组件,
    然后在子组件Label里 获取listid 然后去state里找对应的数据渲染组件,
    但是子组件里 this.props.listid 是undefined

    我知道可以通过URL、query、state这种通过<Link>方法传值,但无法解决我遇到的问题

    所以想问问,有什么方法可以静态不经跳转的传值给子组件

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部