博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初学ReactJS,写了一个RadioButtonList组件
阅读量:7038 次
发布时间:2019-06-28

本文共 2249 字,大约阅读时间需要 7 分钟。

1 
<!
DOCTYPE html
>
 2 
<
html
>
 3 
<
head
>
 4     
<
title
>React Demo
</
title
>
 5     
<
meta 
charset
="utf-8"
 
/>
 6 
</
head
>
 7 
<
body
>
 8     
<
script 
src
="Scripts/react.js"
></
script
>
 9     
<
script 
src
="Scripts/JSXTransformer.js"
></
script
>
10     
<
div 
id
="container1"
></
div
>
11     
<
div 
id
="container2"
></
div
>
12     
<
script 
type
="text/jsx"
>
13         
var RadioButton = React.createClass({
14             render: 
function(){
15                 
return (
16                     <label htmlFor={
this.props.id}>
17                         <input type="radio"
18                                id={
this.props.id}
19                                name={
this.props.name}
20                                value={
this.props.value}
21                                checked={
this.props.checked}
22                                onChange = {
this.handleChange}/>
23                         {
this.props.text}
24                     </label>
25                 );
26             },
27             handleChange: 
function(event){
28                 
this.setState({selectedValue: event.target.value});
29                 
if(
this.props.onSelectedValueChanged){
30                     
this.props.onSelectedValueChanged(event);
31                 }
32             }
33         });
34 
35         
var RadioButtonList = React.createClass({
36                 render: 
function(){
37                     
return (
38                         <span className="radioButtonList">{
this.renderRadionButtons()}</span>
39                     );
40                 },
41                 renderRadionButtons: 
function(){
42                     
return 
this.props.listItems.map(
function(item, index){                 
43                         
return (<RadioButton id={
this.props.name + "_" + index} 
44                                      name={
this.props.name} 
45                                      value={item.value||item}
46                                      text = {item.text||item}
47                                      checked={
this.state.selectedValue == (item.value||item)}
48                                      onSelectedValueChanged = {
this.onSelectedValueChanged}/>);
49                     }.bind(
this));
50                 },
51                 getInitialState: 
function(){
52                     
return {selectedValue: 
this.props.selectedValue};
53                 },
54                 onSelectedValueChanged: 
function(event){
55                     
this.setState({selectedValue: event.target.value});
56                 }
57             });
58             React.render(<label 
for="province">Province:<RadioButtonList name="province" listItems={["Jiangsu","Zhejiang","Shanghai"]} selectedValue="Shanghai" /></label>, document.getElementById("container1")) ;
59             React.render(<label 
for="gender">Gender:<RadioButtonList name="gender" listItems={[{value:"M", text:"Male"}, {value:"F", text:"Female"}]} selectedValue="F" /></label>, document.getElementById("container2"))
60 
</
script
> 
61 
</
body
>
62 
</
html
>
复制代码

作者:蒋金楠
微信公众账号:大内老A
微博:
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号
蒋金楠的自媒体将会停用)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
你可能感兴趣的文章
使用Jazz Automation编写自动化测试
查看>>
松下要造懒人必备智能家居:用平板指挥微波炉
查看>>
Colt进行网络升级 提供100Gbps光纤服务
查看>>
Php常用代码数据库的连接及读取和写入
查看>>
《响应式Web设计:HTML5和CSS3实践指南》——1.5节基于媒介查询的图像缩放
查看>>
Li-Fi无线技术揭秘:Wi-Fi的补充而非替代
查看>>
C Primer Plus 第6版 编程练习 2.12 答案
查看>>
有线电视的用户信息,成为美国黑客的新目标
查看>>
物联网智慧社区 衣食住行全智能
查看>>
高性能的Python扩展:第一部分
查看>>
Qt Linguist介绍
查看>>
Qt Creator快捷键
查看>>
《C语言解惑》—— 2.2 printf输出整数或字符
查看>>
为什么在 Redis 实现 Lua 脚本事务?
查看>>
《草根自媒体达人运营实战》一一2.4 总结
查看>>
Linux 内核被指缺乏安全性
查看>>
《Unity 3D人工智能编程》——2.2 子弹类
查看>>
flatpickr 发布 V3 版本 ,Javascript 日期选择器
查看>>
Win10 Creators Update:自动激活磁盘清理工具
查看>>
《淘宝店铺 大数据营销+SEO+爆款打造 一册通》导读
查看>>