首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >状态不会变回

状态不会变回
EN

Stack Overflow用户
提问于 2018-04-06 18:26:19
回答 2查看 104关注 0票数 1

我的页面上有一个搜索输入。我想在搜索长度等于或大于1的时候改变颜色(从银色到绿色)。这个代码有点问题。现在有两个问题: 1)当搜索长度等于或大于2时,它会改变颜色。

2)当我清除我在搜索字段中输入的任何内容后,当搜索字段为空时,它不会恢复到原来的颜色(银色)。

请帮帮我!

代码语言:javascript
复制
export let change = 'bg-silver';

class Card extends Component {
  constructor({props, name, id, changeColor, change}) {
    super(props, name, id, changeColor, change);
    this.state = { 
        isToggleOn: true,
        name: name,
        id: id,
        changeColor: changeColor,

    };


    this.handleClick = this.handleClick.bind(this);
  }

    handleClick() {
        this.setState(prevState => ({
            isToggleOn: !prevState.isToggleOn
        }));
    }


  render() {
    const { name, id, changeColor, isToggleOn} = this.state;

    (changeColor.length > 1) ? change = 'bg-light-green'
    : change = change;

     return (

         isToggleOn ?
         <a style={{width: 200, height: 250}} className={'tc ' + change + ' dib br3 ma2 pa2 grow bw2 shadow-5'} onClick={this.handleClick}>
           <h2 className='f6 measure-narrow lh-copy'>{name}</h2>
        </a>

        : <div style={{width: 200, height: 250}} className='flex-wrap justify-center bg-light-green dib v-top ma2 br3 pa2 bw2 grow shadow-5' onClick={this.handleClick}>
            <p className='tc f6 measure-narrow lh-copy bg-silver br3 pa1 dib ma2 bw2 shawdow-5' >Hello, My name is <strong>{name}</strong><br/>
            How are you?</p>
        </div> 
    );
  }
}


export default Card;
EN

回答 2

Stack Overflow用户

发布于 2018-04-06 18:35:47

1) changeColor.length > 1 -这意味着'2或更大‘。如果需要'1或更大‘-请使用> 0>= 1

2)您曾一次将变量change value设置为'bg-light-green‘。使用change = change不会做任何事情(将var赋值给self)。

尝试:

代码语言:javascript
复制
change = (changeColor.length >= 1) ? 'bg-light-green' : 'bg-silver';
票数 2
EN

Stack Overflow用户

发布于 2018-04-06 19:04:28

你需要在这里改变两件事:

  1. change = (changeColor.length >= 1) ? 'bg-light-green' : 'bg-silver';
  2. In your handleClick () - change setState with this

this.setState({ isToggleOn:!this.state.isToggleOn });

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

https://stackoverflow.com/questions/49690707

复制
相关文章

相似问题

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