我正在使用 reactstrap 创建一个下拉列表,我想在dropDownValueNav选择下拉列表的不同项目时更改 的值。
问题出在我的onClick函数内部。在那里我设置了我的新值的状态,但它不会立即改变;它只在第二次点击时这样做。
我怎样才能解决这个问题?
这是我的代码:
import React, { PureComponent } from 'react';
import {
Row,
Card,
Nav,
Navbar,
NavItem,
UncontrolledDropdown,
DropdownToggle,
DropdownItem,
DropdownMenu,
} from 'reactstrap';
import { withTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import DownIcon from 'mdi-react/ChevronDownIcon';
import {
Link,
NavLink,
} from 'react-router-dom';
class Menu extends PureComponent {
static propTypes = {
t: PropTypes.func.isRequired,
};
constructor(props) {
super(props);
this.state = {
dropDownValueNav: 'Home,
dropdownOpen: false,
};
}
toggle = () => {
const { dropdownOpen } = this.state;
this.setState({
dropdownOpen: !dropdownOpen,
});
console.log(this.state.dropdownOpen)
};
changeValueSecondary = (e) => {
this.setState({ dropDownValueNav: e.currentTarget.textContent });
console.log(e.currentTarget.textContent);
console.log('state', this.state.dropDownValueNav);
};
render() {
const { t } = this.props;
const { dropdownOpen, dropDownValueNav } = this.state;
return (
<Card inverse>
<Row>
<div className="col-auto">
<Navbar>
<Nav className="text_lg" navbar>
<UncontrolledDropdown toggle={this.toggle} isOpen={dropdownOpen}>
<DropdownToggle nav>
{dropDownValueNav}
</DropdownToggle>
<DropdownMenu>
<DropdownItem onClick={this.changeValueSecondary}>
<Link to="/react">react</Link>
</DropdownItem>
<DropdownItem onClick={this.changeValueSecondary}>
<Link to="/html">html</Link>
</DropdownItem>
一只名叫tom的猫
HUWWW
相关分类