【发布时间】:2019-12-03 16:17:35
【问题描述】:
我有一个端点,它返回一个 RN 组件作为响应。 (<Text> Blah Blah </Text>)。
如何在应用中呈现响应的组件?
【问题讨论】:
我有一个端点,它返回一个 RN 组件作为响应。 (<Text> Blah Blah </Text>)。
如何在应用中呈现响应的组件?
【问题讨论】:
您可以创建一个将字符串转换为组件的函数。 This link 解释了如何。例如:
var str = <Text>test</Text>;
render() {
return (
<View style={styles.container}>
{str}
</View>
);
}
【讨论】:
您可以使用 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)?
我强烈建议您在实现时实现组件,并根据端点的结果切换它们。
根据经验,使用 eval 实现组件效率不高且计算速度非常慢。
【讨论】: