React
by shahrukh007
HTML
<div id="app"></div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
.done {
color: rgba(0, 0, 0, 0.3);
text-decoration: line-through;
}
input {
margin-right: 5px;
}
React
class TodoApp extends React.Component {
constructor(props) {
super(props)
this.state = {list:[],
index:'',
new_list:''
}
this.getData = this.getData.bind(this);
}
componentDidMount() {
this.getData();
}
getData() {
var self=this;
$.ajax({
type: "get",
url: 'https://api.github.com/users',
async: true,
success: function(response){
self.setState({
list:response
})
},
error: function (error) {
alert(error);
}
});
}
viewItem(login,event){
var self=this;
$.ajax({
type: "get",
url: 'https://api.github.com/users/'+login,
async: true,
success: function(response){
self.setState({
new_list:response
})
},
error: function (error) {
alert(error);
}
});
}
render() {
console.log(this.state.new_list);
return (
<div>
<h2>User List</h2>
<ul>
{this.state.list.map((i,index) =>
<li key={index}>
{i.login}
<input style={{color:"green"}} type="button" value="View" onClick={this.viewItem.bind(this,i.login)}/>
</li>)}
</ul>
</div>
)
}
}
ReactDOM.render(<TodoApp />, document.querySelector("#app"))