Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 输出对象名称,而不是使用jsx语法进行反应_Reactjs_React Jsx - Fatal编程技术网

Reactjs 输出对象名称,而不是使用jsx语法进行反应

Reactjs 输出对象名称,而不是使用jsx语法进行反应,reactjs,react-jsx,Reactjs,React Jsx,对于React v0.12,@jsx pragma消失了,这意味着除了React.METHODNAME语法之外,再也不可能输出jsx了 对于我的用例,我试图将React对象包装到另一个对象中,以提供一些方便的方法,因此,在我的组件文件中,我希望能够编写: var myConvenienceObject = require('React-Wrapper'); var Component = myConvenienceObject.createSpecializedClass({ render:

对于React v0.12,@jsx pragma消失了,这意味着除了React.METHODNAME语法之外,再也不可能输出jsx了

对于我的用例,我试图将React对象包装到另一个对象中,以提供一些方便的方法,因此,在我的组件文件中,我希望能够编写:

var myConvenienceObject = require('React-Wrapper');
var Component = myConvenienceObject.createSpecializedClass({
  render: function () {
    return <div />
  }
})
var myconvenceobject=require('React-Wrapper');
var Component=myConvenenceObject.createSpecializedClass({
渲染:函数(){
回来
}
})
但是,jsx编译器会自动将
转换为
React.createElement(“div”,null)


对于较旧版本的
React
,可以使用文件顶部的pragma来处理此问题。但是,由于已经删除了,我想知道目前是否有任何方法可以更改jsx编译的对象的名称,以便
将转换为
myconvenceobject.createElement(“div”,null)

,如果您想在
myconvenceobject
中包含一些元素,如图所示,可以考虑<代码>儿童< /代码>道具。但这可能也需要对MyConvenenceObject进行一些更改,以接受子对象


顺便说一句,我不确定这个
createSpecializedClass
函数来自何处,它的作用是什么

不,不再可能为JSX使用自定义前缀。如果需要这样做,则需要修改JSX转换代码,或者创建一个伪React

var React = require('react'), FakeReact = Object.assign({}, React, {
    createElement: function(component, props, ...children){
        // ...

        // eventually call the real one
        return React.createElement(component, props, ...children);
    }
});
module.exports = FakeReact;
然后要使用它,你导入假react并称之为react

var React = require('fake-react');

// ...
    render: function(){ return <div />; }
var-React=require('fake-React');
// ...
render:function(){return;}

很抱歉,我不太清楚
createSpecializedClass
只是标准
React.createClass
方法的包装器的一个示例。不幸的是,我认为您的建议在这种情况下不起作用,因为我仍然无法在组件文件本身中使用jsx。如果您能在这里粘贴一些代码片段,那就太好了。儿童道具也可以是jsx,不限于Strings。非常感谢您提供的信息!我想人们只需要记住在
React