Coder Social home page Coder Social logo

Comments (6)

longlho avatar longlho commented on July 2, 2024

yeah I don't see why not

from classnames.

ssjogus avatar ssjogus commented on July 2, 2024

Somehow when i try to set 'className' depending on the 'props'

//..
 return <button className={btnClass}  >{this.props.label}</button>;
//..
 <Button label='click here'  flag='success'/>
 <Button label='click here'  flag='warning'/>

it gives both the classes to both the buttons..

Html it is creating is this like this. Shouldn't one button have 'btn-success' and another one have 'btn-warning' classes. Or do i need to create for each button different variables?

<button class="btn btn-sm btn-success btn-warning" data-reactid=".0.$=12">click here</button>
<button class="btn btn-sm btn-success btn-warning" data-reactid=".0.$=12">click here</button>

image

from classnames.

JulienMelissas avatar JulienMelissas commented on July 2, 2024

@ssjogus if you're using ES6 you can use template strings and this should simply things and work great:

var btnClass = classNames('btn', 'btn-sm', {
  `btn-${this.props.flag}`: this.props.flag
});

from classnames.

JulienMelissas avatar JulienMelissas commented on July 2, 2024

But if you're wondering why your code up there didn't work, I think you need to check for the string you're passing in: 'btn-success': this.props.flag === 'success' not 'btn-success': this.props.flag.success

from classnames.

ssjogus avatar ssjogus commented on July 2, 2024

hi @JulienMelissas ,

thanks for your answer..i was writing it in wrong way..

your answer 'btn-success': this.props.flag === 'success'

worked really well.

thanks once again..

from classnames.

jasonwbullok avatar jasonwbullok commented on July 2, 2024

@JulienMelissas Template literals can't actually be used as a key in an Object literal. A computed property should be used:

['btn-' + this.props.flag] instead of btn-${this.props.flag}

See: Using a variable for a key in a JavaScript object literal

from classnames.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.