首页 > 解决方案 > Meteorjs + React,如何在 Meteor.startup 中渲染几个元素

问题描述

我正在尝试声明我想要呈现的两个不同的 React 元素。这两个元素都是分离的元素,例如显示元素(App.jsx)和自定义帐户系统(Login.jsx)。但是在我的测试中,我在两个 jsx 文件中都有相同的代码,以确保问题与它们的特定部分无关。

我还创建了一个 /imports/startup/client/index.js 文件(在 /client/main.js 文件中调用):

import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';

import './accounts-config.js';
import App from '/imports/ui/App.jsx';
import Login from '/imports/ui/Login.jsx';

Meteor.startup(() => {
    render(<App />, document.getElementById('app'));
    render(<Login />, document.getElementById('login'));
})

/client/main.html 包含相关的 div 标签:

...
<div id="app"></div>
<div id="login"></div>
...

问题是第二个渲染永远不会显示(这里是 div 登录),我观察到只有第一个渲染被解释。

我发现的所有示例都只处理单个反应元素。所以我想知道如何使用几个分离的反应元素,就像在我的 html 文件中一样?

我是meteorjs和react世界的新手,所以也许我没有得到正确的哲学......

标签: javascriptreactjsmeteor

解决方案


我相信因为 render() 语句也有一个隐式的 return 语句,所以由于它只能执行并返回一个,因此不会执行下一个 render 语句。


推荐阅读