javascript - 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世界的新手,所以也许我没有得到正确的哲学......
解决方案
我相信因为 render() 语句也有一个隐式的 return 语句,所以由于它只能执行并返回一个,因此不会执行下一个 render 语句。
推荐阅读
- mysql - 用 if 触发
- javascript - 如何在 javascript 函数之外调用数组
- php - PHP、MySQL 应用程序用户和凭据应该在应用程序或数据库上运行?
- java - JPanel.removeAll() 无法正常运行
- jersey - Embedded Jetty:如何在 http 请求到达后立即运行安全处理程序?
- go - 与并发功能不一致的结果?
- c# - Windows 远程 Arduino StringMessageReceived 事件
- php - 将 Cache-Control 年龄转换为天、分钟或秒?
- javascript - 以编程方式调用对象中的所有函数?(Javascript)
- http - 为什么我们在使用 webhook 时需要队列?