ฉันอยากจะถามว่าทำไมสถานะของฉันถึงไม่เปลี่ยนไปเมื่อฉันทำกิจกรรม onclick ฉันค้นหามานานแล้วว่าฉันต้องการผูกฟังก์ชัน onclick ในตัวสร้าง แต่สถานะยังไม่อัปเดต นี่คือรหัสของฉัน:
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
ไม่คืนคำสัญญา หากใช้งานได้มันจะใช้งานได้เพียงเพราะawait
แนะนำ "ติ๊ก" แบบ async หนึ่งรายการในฟังก์ชันและเกิดขึ้นว่าการอัปเดตสถานะได้รับการประมวลผลระหว่างการทำเครื่องหมายนั้น ไม่รับประกัน ตามคำตอบนี้คุณต้องใช้การโทรกลับที่สมบูรณ์ (หากคุณต้องการทำอะไรบางอย่างจริงๆหลังจากที่สถานะได้รับการอัปเดตซึ่งเป็นเรื่องผิดปกติโดยปกติคุณแค่ต้องการแสดงผลอีกครั้งซึ่งจะเกิดขึ้นโดยอัตโนมัติ)