三元条件onClick

时间:2019-03-15 23:54:13

标签: reactjs ternary

我正在尝试根据用户的位置触发onClick事件。 如果位置为“ /收藏夹”,我想返回null我曾尝试使用三元运算符来实现此目的,但找不到我的错误。这是我尝试过的:

             {this.props.location==='/favorites' ? null : 
                onClick={() => {
                    this.props.updateFavsState(this.props.character);
                    this.setState(prevState => ({
                      loved: !prevState.loved
                    }));
                  }}
                }

2 个答案:

答案 0 :(得分:2)

在函数中放置逻辑并调用函数onClick事件,位置作为参数传递给函数。

解决方案:

handleClick = (location) => {
  if (location === '/favorites') {
    return null;
 }
  this.props.updateFavsState(this.props.character);
  this.setState(prevState => ({
    loved: !prevState.loved
  });
}

// somewhere in your render component
onClick={() => { handleClick(this.props.location)}}

答案 1 :(得分:0)

您想要的是

onClick={this.props.location==='/favorites' ? null : 
   () => {
      this.props.updateFavsState(this.props.character);
      this.setState(prevState => ({
          loved: !prevState.loved
      }));
}}