首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用细枝条件渲染反应元件

用细枝条件渲染反应元件
EN

Stack Overflow用户
提问于 2017-11-14 00:04:13
回答 1查看 1.5K关注 0票数 1

我有后台应用程序在Symfony 3,我想进程前端,反应。我有两个组件,我使用树枝if/else条件来决定哪一个会被渲染

代码语言:javascript
复制
{% if some_condition %}
    <div id="compA"></div>
{% else %}
    <div id="compB"></div>
{% endif %}

如果/否则工作良好,组件也呈现得很好,但每次只有其中一个.这是index.js的第一名

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import Login from './components/compA';
import Logout from './components/compB';
ReactDOM.render(<compA/>, document.getElementById('compA'));
ReactDOM.render(<compB/>, document.getElementById('compB'));

在本例中,如果"some_conditon“为true,则呈现compA,如果"some_conditon”false没有发生,如果我切换最后两行(RenderDOM),CompA没有发生,而CompB运行良好.如果我做了

代码语言:javascript
复制
<div id="compA"></div>
<div id="compB"></div>

这两个组件都呈现。什么主意??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-14 00:25:09

下面是正在发生的事情:

  1. 在服务器上,Twig计算表达式
  2. <div id="compA"></div><div id="compB"></div>在HTML上生成,但两者都不生成。
  3. 服务器将HTML + JS (React)发送到浏览器
  4. 在浏览器中,JS尝试对#compA#compB DOM元素进行呈现。
  5. 其中一个元素丢失了,因此会有一个错误。如果缺少第一个JS,则JS中断,第二个JS不呈现。

在index.js中,尝试:

代码语言:javascript
复制
if (document.getElementById('compA')) {
    ReactDOM.render(<compA/>, document.getElementById('compA'));
}

if (document.getElementById('compB')) {
    ReactDOM.render(<compB/>, document.getElementById('compB'));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47275561

复制
相关文章

相似问题

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