Xem xét ví dụ về hooks dưới đây
import { useState } from 'react';
function Example() {
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
Về cơ bản, chúng tôi sử dụng phương thức this.forceUpdate () để buộc thành phần hiển thị lại ngay lập tức trong các thành phần lớp React như ví dụ dưới đây
class Test extends Component{
constructor(props){
super(props);
this.state = {
count:0,
count2: 100
}
this.setCount = this.setCount.bind(this);//how can I do this with hooks in functional component
}
setCount(){
let count = this.state.count;
count = count+1;
let count2 = this.state.count2;
count2 = count2+1;
this.setState({count});
this.forceUpdate();
//before below setState the component will re-render immediately when this.forceUpdate() is called
this.setState({count2: count
}
render(){
return (<div>
<span>Count: {this.state.count}></span>.
<button onClick={this.setCount}></button>
</div>
}
}
Nhưng truy vấn của tôi là Làm cách nào để buộc thành phần chức năng ở trên hiển thị lại ngay lập tức bằng hook?
this.forceUpdate()
? Có thể có một cách để đạt được điều tương tự mà không cần điều đó.