在 React Native 中将凝视渲染为组件

Posted

技术标签:

【中文标题】在 React Native 中将凝视渲染为组件【英文标题】:Render a staring as a component in React Native 【发布时间】:2019-12-03 16:17:35 【问题描述】:

我有一个端点,它返回一个 RN 组件作为响应。 (<Text> Blah Blah </Text>)。 如何在应用中呈现响应的组件?

【问题讨论】:

【参考方案1】:

您可以创建一个将字符串转换为组件的函数。 This link 解释了如何。例如:

 var str = <Text>test</Text>;

  render() 
    return (
      <View style=styles.container>
        str
      </View>
    );
  

【讨论】:

【参考方案2】:

您可以使用 js eval 函数将字符串转换为可执行的 javascript 代码。 例如

let x="console.log('test')";
eval(x); //test

由于您希望它与 JSX 一起使用,因此您可以在执行之前使用 Babel 之类的东西转译代码。

例如,使用浏览器版本的 Babel 时:

var jsCode = babel.transform(jsxCode);
eval(jsCode.code);

还有一个 run 方法可以用来简单地执行代码:

babel.run(code);

transform 和 run 都采用可选的选项哈希;查看documentation了解更多详情。

顺便说一句,这不是一个好习惯,因为实时转译代码是不安全的。 Source

【讨论】:

谢谢。以及如何在我的组件中嵌入babel.run(code)【参考方案3】:

我强烈建议您在实现时实现组件,并根据端点的结果切换它们。

根据经验,使用 eval 实现组件效率不高且计算速度非常慢。

【讨论】:

我无法实现组件,因为我需要动态

以上是关于在 React Native 中将凝视渲染为组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native 函数组件中将获取数据设置为文本字段

React Native 和 Redux:为啥子组件不会在每次状态更新时重新渲染?

为啥组件在状态更改后不重新渲染。在 react-native 函数组件中

如何在 react-native 中重新渲染组件?

在 React Native Expo 中将项目渲染到底页时出现类型错误

为 React Native SectionList 的每个部分渲染不同的组件