React 片段中的文本

Posted

技术标签:

【中文标题】React 片段中的文本【英文标题】:Text in a React Fragment 【发布时间】:2021-12-22 02:41:12 【问题描述】:
render() 
  return (
    <React.Fragment>
      <ChildA />
      <ChildB />
      <ChildC />
    </React.Fragment>
  );

与这种情况不同,我有一个完整的片段列表,我必须根据 for 循环中的某些情况返回这些片段以进行条件渲染。但为此,我必须在 中编写某些字符串文本。 我尝试了很多方法,但我无法这样做。 我的循环在这里:

for (let i = 0; i < CONTENTS.length; i++) 
            if (CONTENTS[i].name === props.displaySubPlayArea) 
                const name = CONTENTS[i].name;
                return <name />
            
;

它返回&lt;name&gt;&lt;/name&gt; 标签而不是名称包含的文本。 提前致谢

已编辑:例如

function apple() 
   return (//stuff1)


function banana() 
   return (//stuff2)


function pear() 
   return (//stuff3)

fruits = ['apple', 'banana', 'pear']
fruits.map((fruit) => 
     return <fruit />
)

所以输出不能是:

<apple></apple>
<banana></banana>
<pear></pear>

输出必须是苹果、香蕉和梨功能组件中的内容

//stuff1
//stuff2
//stuff3

东西可以是任意数量的数据

【问题讨论】:

可以分享完整的组件代码吗? 看看我分享了一个例子 【参考方案1】:

当元素类型以小写字母开头时,它指代内置组件,如 or 并导致传递给 React.createElement 的字符串 'div' 或 'span'。以大写字母开头的类型,如编译为 React.createElement(Foo) 并对应于 javascript 文件中定义或导入的组件。更多信息请阅读this。

function Apple() 
  return <p>apple</p>;


function Banana() 
  return <p>banana</p>;


function Pear() 
  return <p>pear</p>;


function App() 
  const fruits = [Apple, Banana, Pear];
  const result = fruits.map((Fruit, index) => 
    return <Fruit key=index />;
  );
  return <>result</>;

【讨论】:

【参考方案2】:

想想你所追求的是:

fruits.map((fruit, index) => (
    <React.Fragment key=index>
         fruit 
    </React.Fragment>

【讨论】:

不,只检查我刚刚编辑的示例【参考方案3】:

但为此我必须在

中写入某些字符串文本

我猜你想写:

// Not <name />
return <>name</>

// Same
return <React.Fragment>name</React.Fragment>

【讨论】:

不,我不是那个意思。 查看我刚刚发布的示例

以上是关于React 片段中的文本的主要内容,如果未能解决你的问题,请参考以下文章

无法在对话框片段中的文本视图上设置文本

在 React 中渲染 Relay 现代片段

动态 TextView 未在片段中更新

原子片段:原子编辑器中的多行片段

如何从“活动”中的“编辑”文本中获取值并将其用于片段?

片段中gridview的Android文本和图像适配器