当前位置: 首页 > 知识库问答 >
问题:

动态呈现的标记总是小写的

叶阳
2023-03-14

我正在尝试输出一些SVG并从列表中输出它们,下面是我的渲染方法:

render() {

        const renderTag = () => {
            const Tag = this.props.id
            return(<Tag />)
        } 

        return (
            <div key={this.props.name} className="social-box">
                <a className={this.props.id + "-link"}> 
                    {renderTag()}
                </a>
            </div>
        )
    }

但是,DOM节点总是小写的,即


共有3个答案

辛才俊
2023-03-14

我终于找到了答案@汤姆门德尔森几乎得到了答案,但还需要进一步充实。

@ShubhamKhatri建议在render方法之外创建组件的函数实际上完成了这项工作。以下是最终代码:

import React from 'react';
import Facebook from './svg/Facebook';
import LinkedIn from './svg/LinkedIn';
import Twitter from './svg/Twitter';
import Pinterest from './svg/Pinterest';

class SocialMediaBox extends React.Component {

    renderElement(item) {
        const Components = {
            'Facebook': Facebook,
            'Twitter': Twitter,
            'Pinterest': Pinterest,
            'LinkedIn': LinkedIn 
        }
        return React.createElement(Components[item], item);
    }

    render() {

        const Element = this.renderElement(this.props.id)

        return 
        (
            <div>
                {Element}
            </div>
        )
    }
}

export default SocialMediaBox;
邵沛
2023-03-14

我建议您看看这篇关于动态组件的文章。

文章中最相关的例子是:

import React, { Component } from 'react';
import FooComponent from './foo-component';
import BarComponent from './bar-component';
class MyComponent extends Component {
    components = {
        foo: FooComponent,
        bar: BarComponent
    };
    render() {
       const TagName = this.components[this.props.tag || 'foo'];
       return <TagName />
    }
}
export default MyComponent;

很可能可以呈现的组件数量有限,因此可以创建一个字典,其中包含组件本身的键(组件名称)(如示例所示),并以这种方式使用它:

import Facebook from './FaceBook';
import Twitter from './Twitter';

const components = {
   facebook: Facebook,
   twitter: Twitter
};
    render() {
            return <div key={this.props.name} className="social-box">
                    <a className={this.props.id + "-link"}> 
                        <components[this.props.id] />
                    </a>                
</div>;

    }
秦安怡
2023-03-14

这是React的一个技术实现,所有标记在这一行上都是小写的,因为不可能呈现非小写的标记,这是出于设计。

在这里阅读更多。

 类似资料:
  • 本文向大家介绍小程序如何写动态标签的实现方法,包括了小程序如何写动态标签的实现方法的使用技巧和注意事项,需要的朋友参考一下 web开发中,尤其使用react开发项目时,我们可以很方便的动态定义标签(jsx) 动态配置标签的好处一是所有逻辑在JS端控制,二是使得我们的模板非常规范,方便后续维护更新,碎片模板可以很好的控制,三是我们可以根据使用场景很方便的配置props的属性,这样在html结构输出的

  • 我第一次接触JSF和JSF标记。xhtml不工作。我的网络。xml文件包含以下代码 我faces.config文件里的代码是 我已经尝试了很多选项,比如将URL映射更改为/faces/*和在Web INF/Lib中包含JAR,但没有用。。。正在寻求帮助。。。。谢谢

  • 问题内容: 尝试在基于SVG的可视化中使用SVG标记元素时遇到问题。我正在将更改添加到Web应用程序中,该更改恰好在每个页面上都包含一个基本标记,以便对CSS文件,javascript文件等的任何引用都可以是相对的。 我下面有一些示例代码可以重现该问题。有一个线元素和一个标记元素定义。该标记元素由其’marker- end’属性中的行通过uri和标记id引用。没有基本标签,箭头显示正常。使用基本标

  • 试图将一些代码从RestTemplate迁移到WebClient。旧代码在RestTemplate调用周围包装了一个用于度量收集的计时器,并根据请求输入添加了两个额外的自定义标记。 我们正在创建一个WebClient,并将MetricsWebCLientFilterFunction作为过滤器添加到构建器中。我还看到了DefaultWebClientExchangeTagsProvider。问题是,

  • 所以我在表单中有一个所见即所得的字段,在检索数据时,html标签没有正确呈现。超文本标记语言标记仍然显示在窗体中。我在这里尝试了一些解决方案,我也相信这是解析laravel刀片中超文本标记语言标签的最佳方式。我也尝试过这样做: 但它仍然失败了。显示的数据仍然是原始数据。 数据 刃锉 更新 DD数据

  • 在我的后端,我有这样的对象,我正在渲染: 我需要获取所有元标记并将它们传递到index.jade: 但一切都崩溃了 我能在这里做什么? 我的错误是: 语法错误:/opt/rrr/yyyy/views/index.jade:7 5 | 链接(rel='stylesheet',type='text/css',href='build/css/app.css') 6|脚本(src='build/js/pl