为了账号安全,请及时绑定邮箱和手机立即绑定

如何有条件地在反应组件上添加道具?

如何有条件地在反应组件上添加道具?

12345678_0001 2021-12-02 19:47:47
我想有条件地在输入类型上添加道具,我想检查是否input_key是一个数字,如果是,我想添加min_max道具,因为如果它是任何类型,我不想添加它 const min_max = {   min: 0,   max: 100 }; <Input    type={type}    name={input_key}    id={input_key}    {input_key === 'number' && ...min_max}    required={required}    placeholder={placeholder}  />我如何通过使用这样的传播来使它工作?
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

你可以利用三元条件


<Input

    type={type}

    name={input_key}

    id={input_key}

    {...(input_key === 'number'? min_max: {})}

    required={required}

    placeholder={placeholder}

  />


查看完整回答
反对 回复 2021-12-02
?
温温酱

TA贡献1752条经验 获得超4个赞

只需有一个条件并使用传播语法。


// sample prop

let input_props = {

  type,

  name: input_key,

  id: input_key,

}


// condition to add min_max as prop.

if (input_key === 'number') {

  input_props = {

    ...input_props,

    ...min_max              // include min_max 

  }

}


return (

  <Input

    {...input_props}        // spread syntax to pass all input_props

    required={required}

    placeholder={placeholder}

  />

)


查看完整回答
反对 回复 2021-12-02
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

没什么特别的


class Example extends React.Component {

  constructor(props) {

    super(props);

    this.state = {};

  }



  render() {

    const min_max = {

      max : 10,

      min : 1

    }

    

    const j = false;

  

    return (

      <div>

       <input type="number" { ...(j && min_max || {})} />

      </div>

    );

  }

}


ReactDOM.render(

  <Example />,

  document.getElementById('root')

);

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>


<div id="root"></div>


查看完整回答
反对 回复 2021-12-02
  • 3 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信