Javascript 如何在不使用JSX的情况下使组件以React Native的形式出现?

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=

使用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={{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