
import $ from 'webpack-zepto'; import React from 'react';
var Kem = React.createClass({ render(){
var dataget = JSON.parse(this.props.data); //报错 VM233577:1 Uncaught SyntaxError: Unexpected end of input return (<ul>{ dataget }</ul>) } })
var Home = React.createClass({ getDefaultProps(){ return {url:"getApi"} }, getData(){ $.ajax({ url: this.props.url, dataType: 'json', type: 'GET', success: function(data) { var datastring = JSON.stringify(data); var dataobj = JSON.parse(datastring); console.log(dataobj);//可获取 this.setState({data: JSON.stringify(data) });
}.bind(this) }); }, getInitialState:function(){ return {data:[]} }, componentDidMount: function() { this.getData(); }, render(){ return ( <div> <Kem data = {this.state.data}/> </div>) } })
export default Home
通过 ajax 获取的一个对象传给 state 的 data 先转成 string 再转成对象,可是转的时候报错。
1 bdbai 2016-05-14 13:43:57 +08:00 via Android 不要把 json 字符串传给 state ,传对象。 |
3 bdbai 2016-05-14 16:17:32 +08:00 via Android 就是在 success 回调函数里面 this.setState({ data: data }); 没必要再转了。 Kem 组件直接读 props 就可以,不用另外 Parse 。 |