首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React 360从组件渲染到位置

React 360从组件渲染到位置
EN

Stack Overflow用户
提问于 2018-05-09 22:29:29
回答 1查看 599关注 0票数 0

我的样板中有两个组件,其中一个组件仅在从另一个组件调用方法时才挂载。

我怎么能这样做呢?

这是我的样板:

代码语言:javascript
复制
import {ReactInstance} from 'react-360-web';

function init(bundle, parent, options = {}) {
  ...
  // Render 1
  r360.renderToSurface(
    r360.createRoot('Component1'),
    r360.getDefaultSurface()
  );

  //I WOULD LIKE TO MOUNT THIS COMPONENT LATER!
  r360.renderToLocation(
    r360.createRoot('Component2'),
    r360.getDefaultLocation(),
  );
}

window.React360 = {init};

下面是我的组件:

代码语言:javascript
复制
export default class Component1 extends React.Component {
  constructor(props) {
    super(props)
  }

  mountNewComponent() {
    //HOW TO MOUNT COMPONENT2 FROM HERE??
  }
  ..
}
EN

回答 1

Stack Overflow用户

发布于 2018-05-10 00:35:40

client.js:

代码语言:javascript
复制
function init(bundle, parent, options = {}) {
  ...
  r360.runtime.executor._worker.addEventListener('message', (e) => onMessage(e, r360));
}

function onMessage(e, r360) {
  if(e.data.type === 'newComponent') {
    //TODO mount hier
  }
}

在组件中:

代码语言:javascript
复制
mountNewComponent() {    
  postMessage({ type: "newComponent"});
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50255894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档