1
私は、リアクション、つまり現在のブラウザの幅を表示するのはかなり簡単です。ページを読み込んだときにうまく動作しますが、状態を更新するように見えても、何らかの理由でサイズ変更時に更新されません。コンストラクタの状態変化で反応が更新されませんか?
import React from "react";
class SmartBr extends React.Component {
constructor() {
super();
this.state = {
WindowWidth:
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth,
WindowHeight:
window.innerHeight ||
document.documentElement.clientHeight ||
document.body.clientHeight
};
}
updateDimensions() {
this.setState = {
WindowWidth:
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth,
WindowHeight:
window.innerHeight ||
document.documentElement.clientHeight ||
document.body.clientHeight
};
}
/**
* Add event listener
*/
componentDidMount() {
this.updateDimensions();
window.addEventListener("resize", this.updateDimensions.bind(this));
}
/**
* Remove event listener
*/
componentWillUnmount() {
window.removeEventListener("resize", this.updateDimensions.bind(this));
}
render() {
return <p>{this.state.WindowWidth}</p>;
}
}
export default SmartBr;
氷は言った。 setStateはオブジェクトではない関数です。 – archae0pteryx