我试图在单击 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/