【问题标题】:How to pass data to a component when it renders in new window在新窗口中呈现时如何将数据传递给组件
【发布时间】:2016-09-12 10:31:59
【问题描述】:

我正在使用 React 路由器链接在新窗口中渲染一个组件,现在如何将数据传递给这个新组件。我要传递的数据是 JSON 数据,所以如果我将其作为参数传递或查询它已显示在 URL 中。

那么在新窗口中打开时还有其他选项可以传递数据吗?

【问题讨论】:

    标签: reactjs react-router


    【解决方案1】:

    使用较新的选项之一:

    • 本地存储
    • 索引数据库

    • postMessage (https://plnkr.co/edit/YrG1KNrc1CvLCp8A1ucG)

      <script>
      var popup = window.open('data:text/html;charset=utf-8;base64,PHNjcmlwdD5mdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeyBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoImhpIHRoZXJlIHlvdXJzZWxmISB0aGUgc2VjcmV0IHJlc3BvbnNlIGlzOiAiICsgZXZlbnQuZGF0YSwgIioiKTsgY29uc29sZS5sb2coIldlIHJlY2VpdmVkIHRoZSBtZXNzYWdlOiAiICsgZXZlbnQuZGF0YSk7IH0gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOzwvc2NyaXB0Pg==');
      
      function receiveMessage(event)
        {
        console.log("The message from the data:URI is: " + event.data );
        }
      
      function foo()
        {
        popup.postMessage("The user is 'bob' and the password is 'secret'", "*");
        popup.postMessage("hello there!", "*");
        }
      
      window.addEventListener("message", receiveMessage, false);
      window.setTimeout(foo, 2000);
      </script>
      

    参考文献

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多