Tôi muốn hỏi tại sao trạng thái của tôi không thay đổi khi tôi thực hiện một sự kiện onclick. Tôi đã tìm kiếm một lúc trước rằng tôi cần liên kết hàm onclick trong hàm tạo nhưng trạng thái vẫn không cập nhật. Đây là mã của tôi:
import React from 'react';
import Grid from 'react-bootstrap/lib/Grid';
import Row from 'react-bootstrap/lib/Row';
import Col from 'react-bootstrap/lib/Col';
import BoardAddModal from 'components/board/BoardAddModal.jsx';
import style from 'styles/boarditem.css';
class BoardAdd extends React.Component {
constructor(props){
super(props);
this.state = {
boardAddModalShow: false
}
this.openAddBoardModal = this.openAddBoardModal.bind(this);
}
openAddBoardModal(){
this.setState({ boardAddModalShow: true });
// After setting a new state it still return a false value
console.log(this.state.boardAddModalShow);
}
render() {
return (
<Col lg={3}>
<a href="javascript:;" className={style.boardItemAdd} onClick={this.openAddBoardModal}>
<div className={[style.boardItemContainer,style.boardItemGray].join(' ')}>
Create New Board
</div>
</a>
</Col>
)
}
}
export default BoardAdd
setState
không trả lại một lời hứa. Nếu nó hoạt động, nó chỉ hoạt động vìawait
giới thiệu một "đánh dấu" không đồng bộ vào hàm và đã xảy ra rằng bản cập nhật trạng thái đã được xử lý trong lần đánh dấu đó. Nó không được đảm bảo. Như câu trả lời này cho biết, bạn cần sử dụng lệnh gọi lại hoàn thành (nếu bạn thực sự cần làm gì đó sau khi trạng thái được cập nhật, điều này không bình thường; thông thường, bạn chỉ muốn kết xuất lại, nó sẽ tự động mở).