如何从我的Javascript代码中加载用JSX代码编写的react组件
How to load a react component written in JSX code from my Javascript code
我是reactjs的新手,如果我不能正确地表达这个问题,请原谅。所以我有这个jsx脚本文件,它在加载后立即将我的react组件呈现到我的视图中。最初在这个脚本文件中,我没有任何数据可以显示在我的组件中,所以我不渲染任何子组件。然而,在稍后的某个时刻,当我从web服务接收数据时,我非常希望用这些数据再次呈现组件。
我的JSX脚本文件中的组件没有状态,它只是用来显示我传递给它的数据
JSX脚本加载良好,并在最初没有在JSX文件本身中指定数据的情况下呈现组件。然而,当我试图在另一个Javascript文件中再次呈现该组件时,它会给我一个引用错误,即组件未定义。
JSX国家/***@JSX React.DOM*/是否创建了一个完全不同的命名空间?如果是,我如何访问它?以及用JSX脚本文件外部的新数据重新渲染组件的最佳方法是什么。提前感谢!:)
/**已编辑*/伙计们,很抱歉没有添加代码。。相反,让我把问题简单化。。如何从javascript文件访问jsx脚本中的react组件?
/**已编辑*/好了,伙计们,这里有一个代码示例:
var Avatar = React.createClass({
render: function() {
return (
<div>
<ProfilePic username={this.props.username} />
<ProfileLink username={this.props.username} />
</div>
);
}
});
var ProfilePic = React.createClass({
render: function() {
return (
<img src={'http://graph.facebook.com/' + this.props.username + '/picture'} />
);
}
});
var ProfileLink = React.createClass({
render: function() {
return (
<a href={'http://www.facebook.com/' + this.props.username}>
{this.props.username}
</a>
);
}
});
React.render(
<Avatar username="pwh" />,
document.getElementById('example')
);
因此,上面的代码可以嵌入到指定为jsx脚本的html标记中,也可以从外部加载。注意Avatar元素中的username道具(继承中反应最快的组件),问题是我们如何用不同的用户名在另一个javasccript文件中重新构建Avatar组件?一切都很好,如果你这样设置并运行。第一次加载组件时,它将pwh设置为用户名。但是,我如何从我的javascript(即在jsx脚本之外)访问这个元素,并用新的用户名值重新发送它?这可能吗?
我认为您在执行纯JS文件时遇到了b/c问题,JSX文件仍在由JSXTransformer翻译,因此浏览器尚未处理。因此,JSX文件中的符号尚未定义
我推荐两种方法:
出于开发/原型的目的:将/** @jsx React.DOM */
也添加到普通JS文件中,并确保将该JS文件作为type="text/jsx"
包含在HTML页面中,这样Transformer也会尝试进行翻译。
对于要投入生产的代码,请安装jsx编译器npm install -g react-tools
,然后运行jsx <src file> <output filename>
将jsx文件转换为常规的javascript
请参阅:http://facebook.github.io/react/docs/tooling-integration.html
p.s.您正在将应用程序入口点封装在DOM.ready回调或类似的回调中,对吗?
- 从桌面读取python文件时高亮显示代码
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 在<代码>使用JSX标记
- 如何使用KARMA对React JSX ES6代码进行单元测试
- 用于检查JSX文件中的代码样式的工具
- 有没有一个工具可以将React Elements的javascript代码转换为JSX
- 如何调试 Jsx 代码
- 如何从我的Javascript代码中加载用JSX代码编写的react组件
- React, babel, webpack 不解析 jsx 代码
- 在jsx文件中包含选项卡代码
- Babelify不会在node_modules中编译jsx代码