【发布时间】:2015-12-19 12:13:27
【问题描述】:
我正在尝试从维基百科获取一些数据并将其保存到state。
出于某种原因,我不明白,当脚本点击 componentDidMount 时,state 将为空
调用本身运行良好..
这是我的(缩短的)脚本:
define ['jquery', 'react'], ($, React) ->
create: () ->
React.createClass({
getInitialState: () ->
wikiData: {}
userLocale: window.userLocale
sTerm: 'dog'
wikiDomain: '//' + window.userLocale + '.wikipedia.org'
getWikiData: () ->
self = @
$.ajax
url: self.state.wikiDomain + '/w/api.php?' +
'action=parse' +
'&prop=displaytitle%7Ctext' +
'&format=json'
'&page=' + self.state.sTerm +
'&redirects=' +
'&maxage=86400' +
'&callback=?'
async: false
dataType: 'json'
success: (data) ->
if data.hasOwnProperty 'parse'
self.setWikiData data
setWikiData: (data) ->
@setState wikiData: data.parse.text['*']
componentWillMount: () ->
@getWikiData()
# Here is state empty again
componentDidMount: () ->
self = @
$(document).ready () ->
wikiContent = $(self.getDOMNode())
# do things
render: () ->
<div className="content-inner" dangerouslySetInnerHTML={{__html: @state.wikiData}} />
})
【问题讨论】:
-
self.setWiiData()函数是否被调用过? -
我假设从维基百科返回的内容被渲染。
-
那我不明白你的问题。
-
由于某种原因,我无法在
componentDidMount中获取wikiData的内容。似乎它们是直接渲染的。
标签: javascript reactjs coffeescript react-jsx