【问题标题】:React PLX Element yields " Maximum update depth exceeded" errorReact PLX Element 产生“超出最大更新深度”错误
【发布时间】:2018-03-12 12:25:03
【问题描述】:

我像这样安装了 react-plx:npm install --save react-plx

这是模块的链接:https://www.npmjs.com/package/react-plx

我按照上页的例子,在“render”下定义了这些变量:

render() {
    const exampleParallaxData = [
      {
        start: 100,
        duration: 400,
        easing: "ease",
        properties: [
          {
            startValue: 0,
            endValue: 250,
            property: "translateY"
          }
        ]
      }
    ];

    const styles = {
      width: 200,
      height: 100,
      lineHeight: "100px",
      textAlign: "center",
      borderRadius: 20,
      backgroundColor: "#34ba9c",
      color: "#fff",
      position: "absolute"
    };


    return (
        <div className="callToAction">
          <Plx parallaxData={exampleParallaxData} style={styles}>
            Hello
            <button className="draw">I am a button</button>
          </Plx>
        </div>
    );
      }
    }

有时它可以工作......但其他人我得到这个错误:

dev-vendors.js:2057 Uncaught Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
    at invariant (dev-vendors.js:2057)
    at requestWork (dev-vendors.js:46621)
    at scheduleWorkImpl (dev-vendors.js:46520)
    at scheduleWork (dev-vendors.js:46477)
    at Object.enqueueSetState (dev-vendors.js:42000)
    at Plx.Component.setState (dev-vendors.js:8044)
    at eval (Plx.js:704)

我有什么办法可以避免这个问题,或者这是否意味着我不应该使用这个包?

【问题讨论】:

    标签: reactjs parallax


    【解决方案1】:

    这是工作示例

    import React from 'react';
    import Plx from 'react-plx';
    class TestJS extends React.Component {
        constructor(props) {
            super(props);
        }
    
        render() {
            const exampleParallaxData = [
                {
                    start: 100,
                    duration: 400,
                    easing: "ease",
                    properties: [
                        {
                            startValue: 0,
                            endValue: 250,
                            property: "translateY"
                        }
                    ]
                }
            ];
    
            const styles = {
                width: 200,
                height: 100,
                lineHeight: "100px",
                textAlign: "center",
                borderRadius: 20,
                backgroundColor: "#34ba9c",
                color: "#fff",
                position: "absolute"
            };
    
            return(
                <div className="callToAction">
                    <Plx parallaxData={exampleParallaxData} style={styles}>
                        Hello
                        <button className="draw">I am a button</button>
                    </Plx>
                </div>
            );
        }
    }
    
    export default TestJS;

    【讨论】:

    • 我的例子和这个例子有什么不同吗?因此,我使用的示例确实显示了大多数情况下的预期,但有时它会引发上述错误。我正在寻找可能引发该错误的原因。 (如果您的答案中错过了,请告诉我!)
    • 我刚刚复制了您的示例。你有没有在顶部导入包?重新启动应用程序并对其进行测试。我分享给你的例子和你的代码没有区别。
    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2021-04-17
    • 2021-08-31
    • 2020-12-17
    • 1970-01-01
    • 2019-09-22
    • 2020-07-15
    相关资源
    最近更新 更多