【发布时间】:2015-08-25 00:33:42
【问题描述】:
我有一个 API 可以返回系统中用户喜爱的所有对象 (GET /loves.json)。我正在展示一组对象,如果用户喜欢使用 react 的给定产品,我想使用一次 API 调用来“着色”。到目前为止,我有:
components/love.js.jsx.coffee:
class Components.Love extends React.Component
@propTypes =
id: React.PropTypes.number
type: React.PropTypes.string
constructor: (props) ->
super(props)
@state = Loves.Fetcher.shared()
loved: ->
this.state.loved(@props.id, @props.type)
text: ->
if @loved() then "Loved" else "Unloved"
render: ->
return React.DOM.div {}, @text()
loves/fetcher.js.coffee:
class Loves.Fetcher
instance = null
@shared: -> instance ?= new Loves.Fetcher
constructor: ->
@fetch()
loved: (id, type) ->
return ...
fetch: ->
$.get "/loved.json", (data) -> ...
index.html:
<h1>Shoes</h1>
<div data-react-class="Components.Love" data-react-props="{'id':1,'type':'Product'}"></div>
<h1>Pants</h1>
<div data-react-class="Components.Love" data-react-props="{'id':2,'type':'Product'}"></div>
<h1>Again</h1>
<div data-react-class="Components.Love" data-react-props="{'id':1,'type':'Product'}"></div>
<h1>Pants (Again)</h1>
<div data-react-class="Components.Love" data-react-props="{'id':2,'type':'Product'}"></div>
但是,我不确定如何继续。当状态发生变化时(例如通过 HTTP 请求)通知组件以更新它们的 React 方式是什么?共享 API 结果的任何其他好方法(我绝对不希望每个爱组件都有 HTTP 请求)?我希望能够将爱组件放置在任何地方,而不是依赖于父/子关系。
【问题讨论】:
标签: coffeescript reactjs