【问题标题】:Generic parameter depending on Media query取决于媒体查询的通用参数
【发布时间】:2019-03-15 22:31:59
【问题描述】:

所以我目前在移动设备上时需要更改组件的特定参数值的情况。例如:

@media all and (max-width: 720px)

哪个和scss一起使用

我有这个组件,它在使用时需要一些参数;

<Books pageLimit={10} />

所以在我的情况下,我想将属性的值从 10 更改为 4

720px 分辨率设备(@media all and (max-width: 720px) 或以下。

我对媒体查询和样式等很陌生。所以我不确定如何解决这个问题。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript css reactjs sass


    【解决方案1】:

    你可以添加一个窗口resize事件监听器,当窗口宽度低于720px时改变一个状态。

    示例(点击Full page查看实际效果)

    function Books({ pageLimit }) {
      return <div>{pageLimit}</div>;
    }
    
    class App extends React.Component {
      state = {
        pageLimit: window.innerWidth < 720 ? 4 : 10
      };
    
      componentDidMount() {
        window.addEventListener("resize", this.resize);
      }
    
      componentWillUnmount() {
        window.removeEventListener("resize", this.resize);
      }
    
      resize = () => {
        this.setState({ pageLimit: window.innerWidth < 720 ? 4 : 10 });
      };
    
      render() {
        return <Books pageLimit={this.state.pageLimit} />;
      }
    }
    
    ReactDOM.render(<App />, document.getElementById("root"));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
    
    <div id="root"></div>

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2017-12-02
      相关资源
      最近更新 更多