首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能用<checked= />制作和<input === {this.state.foo=== "foo"} />完全一样的东西吗?ReactJS

我能用<checked= />制作和<input === {this.state.foo=== "foo"} />完全一样的东西吗?ReactJS
EN

Stack Overflow用户
提问于 2020-05-06 05:43:51
回答 1查看 31关注 0票数 0

我有个小问题。我已经为某种服务创建了一个多步骤表单,但大多数字段(几乎每个字段)都是按钮。我希望将一个值传递给state,使其通过props传递到表单的末尾。我在之前的<input checked={} />项目中做了一些类似的事情,但是这些点看起来又丑又旧。我的问题是:有没有什么方法可以用按钮来做,或者至少去掉输入下面的圆点?

用于更改状态的函数:

代码语言:javascript
复制
handleChange = (e: any) => {
  this.setState({
    [e.target.id]: e.target.value,
  });
};

按钮代码的小示例:

代码语言:javascript
复制
<button
  className="choose_rank"
  name="selectMode"
  id="selectMode"
  value="conquest"
  // checked={values.selectMode === "conquest"}
  onClick={this.toggleConquest}
  onChange={handleChange}
  defaultValue={values.selectMode}
>
  {this.state.isConquest ? (
    <img src={conquestIconOn} alt="conquest_icon" />
  ) : (
    <img src={conquestIconOff} alt="conquest_icon" />
  )}
</button>
EN

回答 1

Stack Overflow用户

发布于 2020-05-06 07:16:38

实际上,button元素没有input元素那样的checked属性。但是这里你有ReactJS,用你自己的道具创建你的按钮组件,然后做你想做的,注意以下几点:

代码语言:javascript
复制
import React from 'react';
import cn from 'classnames';

type ButtonProps = {
  checked: boolean,
  className: string,
  name: string,
  id: string,
  value: string,
  defaultValue: string,
  onClick: () => void,
  onChange: () => void,
};

const Button = ({
  checked,
  className,
  name,
  id,
  value,
  defaultValue,
  onClick,
  onChange,
  ...rest,
}: ButtonProps) => (
  <button
    className={cn(className, checked && "someClassName")}
    name={name}
    id={id}
    value={value}
    defaultValue={defaultValue}
    onClick={onClick}
    onChange={onChange}
  />
);

export default Button;

现在,您可以使用上面的Button组件而不是button元素,还可以将checked属性作为布尔值传递给组件。className={cn(className, checked && "someClassName")}只是一个用法示例。我从classname库中导入了cn函数来处理多类名,如果checkedtrue,则会将someClassName分配给按钮元素,您可以对此使用任何CSS。有很多方法可以使用这个布尔属性,这取决于你。

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

https://stackoverflow.com/questions/61623599

复制
相关文章

相似问题

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