javascript - 如何在点击时正确更改 react-bootstrap DropdownButton 的标题?

标签 javascript reactjs drop-down-menu react-bootstrap

我试图在单击 Dropdown.Item 时更改 DropdownButton 中显示的文本/标题。

我试图将各种参数传递给 changeValue 方法/函数,但目前还没有解决方案。使用这种方法,函数中的参数文本显示为空。因此,状态属性 dropDownValue 变为空,因此单击项目后下拉列表中没有标题。

import React from 'react';
import './App.css';
import DropdownButton from 'react-bootstrap/DropdownButton';
import Dropdown from 'react-bootstrap/Dropdown';

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

    this.state = {
      dropDownValue: "Select an item"
    }
  }

  changeValue(text) {
    this.setState({dropDownValue: text})
  }

  render() {
    return (
      <div className="App">
        <header className="App-header">
        </header>
        <div>
        <DropdownButton id="dropdown-item-button" title={this.state.dropDownValue} className="format"> 
          <Dropdown.Item as="button"><div onClick={() => this.changeValue(this.textContent)}>Item #1</div></Dropdown.Item>
          <Dropdown.Item as="button"><div onClick={() => this.changeValue(this.textContent)}>Item #2</div></Dropdown.Item>
          <Dropdown.Item as="button"><div onClick={() => this.changeValue(this.textContent)}>Item #3</div></Dropdown.Item>
        </DropdownButton>
        </div>
      </div>
    );
  }
}

export default App;

最佳答案

改这个就行

<Dropdown.Item as="button"><div onClick={() => this.changeValue(this.textContent)}>Item #1</div></Dropdown.Item>

有了这个,
<Dropdown.Item as="button"><div onClick={(e) => this.changeValue(e.target.textContent)}>Item #1</div></Dropdown.Item>

关于javascript - 如何在点击时正确更改 react-bootstrap DropdownButton 的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388220/

相关文章:

javascript - 你如何在 Jison 中匹配零个或多个标记?

javascript - ReadyState 没有更改为 4

javascript - 使用 React 进行分页,解决 JSON 数据问题

php - 使用php显示下拉列表中两个不同表的值

javascript - typescript /lodash : how to get results/objects with multiple common properties

Javascript 信用卡过期验证

javascript - React.js 的 Falcor 是什么?

javascript - 定义我自己的 React 事件类型

php - Jquery/PhP/Joomla 选择两个组合框之一不会更新

javascript - JS 下拉输入表单验证问题