【发布时间】:2017-06-21 19:19:55
【问题描述】:
我正在尝试将 JSON 响应传递给我的 React 组件的 props,但我不想在服务器中呈现它。
我感到困惑的是,当我在前面使用@ 渲染变量时,我可以在视图中访问它,但如果没有其他方法,它就无法工作。
有效的代码
控制器
class InquiryController < ApplicationController
def show
id = params[:id]
url = 'http://127.0.0.1:3001/api/v1/inquiry/' + id
uri = URI(url)
@inquiry = Net::HTTP.get(uri)
return :json => @inquiry
end
end
查看
<%= react_component('ShowInquiryRootComponent', {inquiry: @inquiry})%>
无效的代码
控制器
class InquiryController < ApplicationController
def show
id = params[:id]
url = 'http://127.0.0.1:3001/api/v1/inquiry/' + id
uri = URI(url)
inquiry = Net::HTTP.get(uri)
return :json => inquiry
end
end
查看
<%= react_component('ShowInquiryRootComponent', {inquiry: inquiry})%>
【问题讨论】:
-
您不必总是这样做。事实上,测试人员可能不赞成在视图中使用实例变量!当然,当使用
render时,您可以通过当地人,不是吗?有关详细信息,请参阅Passing Local Variables。另外,这种设计不应该是在视图中操纵 json 响应而不是尝试访问@inquiry对象吗?
标签: ruby-on-rails reactjs jsx