不显示 react.rb 的数据

Not showing data with react.rb

我只是想将 ReactRB 与 reactive-record 一起使用。

所以我认为这笔交易是在渲染部分。当我在 React Component class, I can't see any data in my table 中设置 param :user, type: User 时。当然模型用户在public文件夹中,作为ReactRB中的这个要求。

好吧,在控制台中我看到那个服务器 is fetching nothing, but right data returned

我错过了什么?感谢您的帮助!

答案的关键是 in this screenshot

详细信息是数据作为 json blob 从服务器返回 reactive-record 解码它,但依赖于这样一个事实,即如果您尝试 json 解析一个简单的字符串,它会引发错误。 opal 0.10 不再引发标准错误,所以整个事情就挂了。

要记住的一件事是反应记录延迟加载记录和属性。因此,除非在渲染中的某个地方,否则您访问特定的 record/attribute 该属性将不会显示在客户端上。

如果不发布更多代码,很难说得更多,但这里有一些帮助:

假设您的组件如下所示:

class Foo < React::Component::Base
  param :user, type: User
  def render
    "user.name = #{user.name}"
  end
end

然后在控制器或布局中的某个地方执行此操作:

render_component '::Foo', {user: User.first}

您可以尝试像这样非常简单的操作,只是为了熟悉它是如何工作的。

应该是这样的:您将呈现您的视图,第一个用户的占位符将被发送到组件,在呈现期间组件查找该用户的名称属性,它没有,因此排队等待从服务器获取。渲染将完成,最终数据将从服务器下来,本地模型的数据将被更新,显示该数据的组件将被重新渲染。

在预渲染期间,上述所有事情都发生在服务器内部,当组件被渲染后,最终的 html 与用于渲染组件的所有模型数据一起交付 。所以在第一次加载时,如果一切正常,您将看不到来自服务器的任何提取。

因此,如果您尝试上面的小示例,然后进入您的 javascript 控制台,您可以这样说:

Opal.User.$first()

你会看到返回的底层模型数据结构(我是从JS翻译成上面的ruby...ruby方法都是以$开头)

然后您可以这样做:

Opal.User.$first().$name() 

你甚至可以这样做(假设至少有 2 个用户模型):

Opal.User.$find(2).$name()

你应该返回类似 "DummyValue" 的东西,但是控制台中会有一个服务器获取周期,然后如果你重复上面的命令你会得到实际值!!!

这可能不是获取更多详细信息的最佳论坛,如果您需要访问 https://gitter.im/reactrb/chat 以获得更多帮助

想想这个……Opal https://github.com/opal/opal/issues/1545 中存在一个已知问题,这会导致反应记录出现问题。请确保您没有使用蛋白石 0.10