bootstrap split button下拉项的值未定义

问题描述 投票:0回答:1

我不习惯在react bootstrap中使用拆分按钮值,但我只是想用splitbutton的值更新我的react状态,但该值始终返回undefined ...不确定我在做什么错?我已经为所有下拉菜单设置了value属性。

handleChange=(e)=>{
    this.setState({[e.name]: e.target.value})
    console.log(e.target.value)
}

<SplitButton className="dropdownItem" variant='Secondary' title='step pattern'>
      <Dropdown.Item onClick={this.handleChange} name='stepPattern'  eventKey="1" value='step' ><img className="patterns" alt="a stepped gradient" src={step}></img></Dropdown.Item>
      <Dropdown.Divider />
      <Dropdown.Item onClick={this.handleChange} name='stepPattern' eventKey="2" value='wave' ><img className="patterns" alt="a wavy gradient" src={wave}></img></Dropdown.Item>
       <Dropdown.Divider />
       <Dropdown.Item onClick={this.handleChange} name='stepPattern'  eventKey="3" value='curve' ><img className="patterns" alt="an upward sloped gradient" src={curve}></img></Dropdown.Item>     
       </SplitButton> 
reactjs react-bootstrap react-state
1个回答
0
投票

如果您使用handleChange(我建议),则可以通过以下方式进行更改:

handleChange = value => {
    this.setState({ stepPattern: value });
    console.log(value);
}

通过执行此操作,现在您需要的是Dropdown.Item来调用handleChange函数。尝试以下操作:

  render() {
    return (
      <SplitButton className="dropdownItem" variant='secondary' title='step pattern' >
        <Dropdown.Item onClick={() => { this.handleChange(1); }} eventKey="1" value='step' ><img className="patterns" alt="a stepped gradient" src={step}></img></Dropdown.Item>
        <Dropdown.Divider />
        <Dropdown.Item onClick={() => { this.handleChange(2); }} eventKey="2" value='wave' ><img className="patterns" alt="a wavy gradient" src={wave}></img></Dropdown.Item>
        <Dropdown.Divider />
        <Dropdown.Item onClick={() => { this.handleChange(3); }} eventKey="3" value='curve' ><img className="patterns" alt="an upward sloped gradient" src={curve}></img></Dropdown.Item>
      </SplitButton >
    );
  }

现在,每个按钮都使用预定义的值调用该函数,该值可以常量形式取出。

© www.soinside.com 2019 - 2024. All rights reserved.