Javascript 如何在不使用JSX的情况下使组件以React Native的形式出现?
使用React Native的标准方法显然是JSX:Javascript 如何在不使用JSX的情况下使组件以React Native的形式出现?,javascript,reactjs,react-native,react-jsx,Javascript,Reactjs,React Native,React Jsx,使用React Native的标准方法显然是JSX: render: function() { var movie = MOCKED_MOVIES_DATA[0]; return ( <View style={styles.container}> <Text>{movie.title}</Text> <Text>{movie.year}</Text> <Image source=
render: function() {
var movie = MOCKED_MOVIES_DATA[0];
return (
<View style={styles.container}>
<Text>{movie.title}</Text>
<Text>{movie.year}</Text>
<Image source={{uri: movie.posters.thumbnail}} />
</View>
);
}
render:function(){
var movie=mock_MOVIES_DATA[0];
返回(
{movie.title}
{电影年}
);
}
我如何仅使用JavaScript实现这一点?通常在正常的React中,
React.createElement('div')
可以作为JSX的替代品,但在尝试运行iOS React本机应用程序时,我收到一个错误“null不是函数”。我尝试联系打包商,它说它监听端口8081,还说它在运行时收到对index.ios.bundle
的请求
所以我把这个放在我的浏览器里:
在返回的包中,我发现:
var wazoo = React.createClass({displayName: "wazoo",
render: function() {
return (
React.createElement(View, {style: styles.container},
React.createElement(ScrollView, null,
React.createElement(View, null,
React.createElement(Text, {style: styles.welcome},
"Wazoo"
),
等等。因此,它看起来像
视图
,滚动视图
等,就像Web React中通常定义的组件一样,上面的代码是JS等价于JSX。Daniel Earwicker的解决方案是正确的,但我们可以使用工厂来提高可读性:
var-View=React.createFactory(React.View);
var ScrollView=React.createFactory(React.ScrollView);
var Text=React.createFactory(React.Text);
var wazoo=React.createClass({displayName:“wazoo”,
render:function(){
返回视图({style:styles.container},
滚动视图(空,
视图(空,
文本({style:styles.welcome},
“Wazoo”
)
)
)
);
}
});
我知道从最初的问题开始已经有一段时间了,但如果其他人感兴趣,您可以查看我们在Uqbar制作的库:
它非常易于使用,并且提供了比React开箱即用界面更干净的界面。您看过将JSX编译为纯JS的结果了吗?从JSX到在React Native iOS项目中运行的JS,这对我来说都是透明的操作。我不知道如何只抓取JSX到JS编译步骤。这对字符串有效吗?如下所示:我看到这是React.createElement