首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用挂钩路由器反应材料UI按钮组件

用挂钩路由器反应材料UI按钮组件
EN

Stack Overflow用户
提问于 2019-09-17 17:06:56
回答 1查看 491关注 0票数 2

我试图用钩子将类组件迁移到函数组件上。

在使用类组件时,我使用链接组件将按钮组件传递给按钮组件,因为我使用的是反应路由器库。

但是,现在我尝试使用Paratron/挂钩路由器库进行路由,但是当将A组件传递给Button时,会出现一个错误:

TypeError: props.href未定义

我的代码现在看起来如下:

代码语言:javascript
复制
import React, { Fragment } from 'react';
import { Grid, Button } from '@material-ui/core';
import { A } from 'hookrouter';
import './styles.css';

const Home = props => {
  return (
    <Fragment>
      <Grid container spacing={24} className="landing">
        <Grid item xs={6}>
          <Button 
            variant="contained" 
            color="primary" 
            size="large"
            component={A}
            to="/login"
          >Login</Button>
        </Grid>
        <Grid item xs={6}>
          <Button 
            variant="contained" 
            color="secondary" 
            size="large"
            component={A}
            to="/contact"
          >Contact us</Button>
        </Grid>
      </Grid>
    </Fragment>
  );
}

export default Home;

我猜这个A组件不包含href属性。不知道该怎么做。如有任何意见,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-17 17:33:16

你需要提供'href‘道具,而不是' to’道具。

代码语言:javascript
复制
<Fragment>
  <Grid container spacing={24} className="landing">
    <Grid item xs={6}>
      <Button 
        variant="contained" 
        color="primary" 
        size="large"
        component={A}
        href="/login" //href
      >Login</Button>
    </Grid>
    <Grid item xs={6}>
      <Button 
        variant="contained" 
        color="secondary" 
        size="large"
        component={A}
        href="/contact" //href
      >Contact us</Button>
    </Grid>
  </Grid>
</Fragment>

我还必须用类组件包装A,因为A可能是函数组件,而且它们不能容纳引用(按钮组件支柱所需要的)。

您可以参考这个工作的CodeSandbox演示

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57979005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档