单击更改两个按钮的样式

影子流

是否可以使用多个按钮的onClick功能更改背景颜色?

此代码将同时更改两个按钮的颜色(初始为黑色)。

我想我单击的按钮会更改颜色,但另一个按钮不会更改。

例如:第一次,Btn1黑色,btn2黑色

然后单击btn1,btn1白色btn2黑色,

然后单击btn2,btn1白色,btn2白色。

然后单击btn2,btn1白色,btn2黑色。

class Test extends React.Component {
    constructor(){
    super();


    this.state = {
        color_black: true
      }
    }

    changeColor(){
            this.setState({color_black: !this.state.color_black})
    }
        render(){
        let bgColor = this.state.color_black ? "black" : "white"
        return (
        <div>
            <button style={{backgroundColor: bgColor}} onClick={this.changeColor.bind(this)}>Button1</button>

            <button style={{backgroundColor: bgColor}} onClick={this.changeColor.bind(this)}>Button2</button>
        </div>
      )
    }
}

React.render(<Test />, document.getElementById('container'));
Cheeroke

最简单的解决方案是将按钮放置在单独的组件中,而不是将它们呈现在父组件中。由于一个组件一次只能具有一个状态,因此必须进行分隔。很多代码?是。它有效吗?也可以

/*
 * A simple React component
 */
class Button extends React.Component {   
    constructor(){
    super(); 
    this.state = {
        color_black: true,
      }
    }
    changeColor(){
            this.setState({color_black: !this.state.color_black})
    }
        render(){
        let bgColor = this.state.color_black ? this.props.color : this.props.color2
        return (
        <div>
            <button style={{backgroundColor: bgColor}} onClick={this.changeColor.bind(this)}>Button1</button>
        </div>
      )
    }
}

class Application extends React.Component {
        render(){
        return (
        <div>
            <Button color="blue" color2="red"/>
            <Button color="black" color2="white"/>
        </div>    
      )
    }
}
/*
 * Render the above component into the div#app
 */
React.render(<Application />, document.getElementById('app'));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单击来自两个不同活动的两个单选按钮时,如何在新活动中显示文本?

单击后CSS更改按钮样式

单击按钮的两个功能

尝试创建一个按钮,单击时将其拆分为两个新按钮

我有两个按钮,我需要更改Ionic中两个按钮的颜色

如何在一个div中设置两个按钮的样式

两个按钮的背景色均已更改

单击两个或更多按钮时弹出Javascript

单击按钮时链接两个GUI的问题

基于单击的两个按钮,将调用功能

如果单击两个按钮之一,请更改其颜色

Laravel和Livewire单击更改按钮样式

单击按钮上的图标会触发React中的两个onClicks(按钮和图标)

在同一活动中单击两个不同的按钮时,如何导航到两个不同的活动?

如何在单击按钮时打开两个活动

使用两个按钮(正/负)或一个按钮来更改文本?

两个按钮,一个保持访问,直到单击另一个

Android-在按钮上单击并重新单击后在两个图像之间更改ImageView

单击后隐藏并显示两个按钮

单击两个按钮后如何在Textview中显示两个不同的文本

有两个提交按钮并知道单击了哪个按钮

Reactjs:单击时如何更改按钮样式

单击 1 按钮激活两个下拉菜单

单击按钮时删除两个 cookie

至少单击一次其他两个按钮后,如何启用按钮?

单击两个按钮后抓取数据

Javascript - 将两个函数 then/catch 样式更改为 async/await 样式

单击拒绝/关闭后禁用两个按钮

更改按钮单击反应的样式