javascript - 如何使用相同的按钮样式但不同的操作(ReactJs)
问题描述
嗨,现在我在我的投资组合网站上工作,我正在尝试制作一个使用相同样式但想将其用于两个按钮 (1) 转到某个页面 (2) 下载简历的按钮。但他们都做了动作(1)。我不知道如何让这两个按钮做不同的工作。
这是按钮的代码,
import React from 'react';
import './Button.css';
import { Link } from 'react-router-dom';
const STYLES =['btn--primary', 'btn--outline'];
const SIZES = ['btn--medium', 'btn--large'];
export const Button = ({
children,
type,
onClick,
buttonStyle,
buttonSize
}) => {
const checkButtonStyle = STYLES.includes(buttonStyle)
? buttonStyle
: STYLES[0];
const checkButtonSize = SIZES.includes(buttonSize)
? buttonSize
: SIZES[0];
return <Link to="/some-page" className='btn-mobile'>
<button
className={`btn ${checkButtonStyle} ${checkButtonSize}`}
onClick={onClick}
type={type}
>
{children}
</button>
</Link>
};
这是两个按钮的代码
<div className='hero-btns'>
<Button className='btns'
buttonStyle='btn--outline'
buttonSize='btn--large'
>
PORTFOLIO
</Button>
<Button
className='btns'
buttonStyle='btn--primary'
buttonSize='btn--large'
>
DOWNLOAD CV<i class="fas fa-chevron-circle-down"></i>
</Button>
</div>
我正在研究 ReactJs /create-react-app。也许你可以给我推荐一个更简单的方法。
解决方案
您可以将动作作为道具传递给按钮组件。
<Button action="/PORTFOLIO-page">
PORTFOLIO
</Button>
<Button action="/DOWNLOAD-CV-page">
DOWNLOAD CV
</Button>
并将 Button 组件的代码更改为:
return <Link to={this.props.action}>
<button
>
{children}
</button>
</Link>
};
你可以传递任意数量的道具。
推荐阅读
- ubuntu - 在命令行上总结 Ubuntu 中文件夹的大小
- android - React Native 应用程序在后台重新启动
- c# - WPF TextBox 错误消息可见且在 TextBox 中写入文本时不会消失
- typescript - 如何将数组的值显示为逗号分隔值
- regex - 在 Raku 中查找重复数字的优雅方法(née Perl 6)
- javascript - babel-loader 破坏了 npm 包中的 `this` 变量
- facebook - Facebook user_posts 权限:不要从时间线获取朋友的帖子/评论。只拥有
- android - 反向数据绑定android kotlin
- git - Git:为什么仍然提到 __pycache__?
- c++ - 在 C++ 中将时间从 txt 转换为 xml?