我只是试着用ReactRB和反应记录。
所以,我认为,这笔交易是在提供部分。当我在React组件类中设置React组件类时,我看不到任何数据在我的桌子上。当然,在公用文件夹中建模用户,这在ReactRB中是这样的要求。
在控制台中,我看到了服务器正在获取任何数据,但返回的数据正确。。
我错过了什么?谢谢你的帮助!
答案的关键是 在这个截图里
详细信息是,当json反应记录对其进行解码时,数据会从服务器返回,但是如果您试图解析一个简单的字符串,它会引发一个错误。Opal0.10不再引起标准错误,所以整个程序都挂断了。
发布于 2016-08-25 22:08:53
只是想想这个..。在Opal https://github.com/opal/opal/issues/1545中有一个已知的问题,这会导致反应记录方面的问题.请确保您没有使用蛋白石0.10
发布于 2016-08-25 18:19:17
要记住的一件事是,反应记录延迟加载记录和属性。因此,除非在您的呈现中的某个位置,否则您将访问某个特定的记录/属性,该属性将不会显示在客户端上。
如果不发布更多的代码,很难说出更多的信息,但以下是一些帮助:
假设您的组件如下所示:
class Foo < React::Component::Base
param :user, type: User
def render
"user.name = #{user.name}"
end
end在控制器或布局中的某个地方,您可以这样做:
render_component '::Foo', {user: User.first}你可以尝试一些非常简单的东西,就像这样,只是为了熟悉事情的运作方式。
应该是这样的:您将呈现视图,第一个用户的占位符将被发送到组件,在呈现过程中,组件将查找该用户的name属性(它没有此属性),因此将排队从服务器获取该属性。呈现将完成,最终数据将从服务器下来,本地模型的数据将被更新,显示该数据的组件将被重命名。
在预录制过程中,所有上述情况都发生在服务器内部,当组件被呈现时,最终的html将与所有用于呈现组件的模型数据一起交付。因此,在第一次加载时,如果所有操作正常,您将不会看到来自服务器的任何获取。
因此,如果您尝试上面的小示例,然后进入您的javascript控制台,您可以这样说:
Opal.User.$first()您将看到底层模型数据结构的返回(我正在从JS转换为上面的ruby .ruby方法都以$开头)
然后你可以这样做:
Opal.User.$first().$name() 您甚至可以这样做(假设至少有两个用户模型):
Opal.User.$find(2).$name()您应该返回类似于"DummyValue“的内容,但是控制台中将有一个服务器获取周期,然后如果您重复上面的命令,您将得到实际值!
如果您需要通过https://gitter.im/reactrb/chat获得更多帮助,这可能不是获取更多详细信息的最佳论坛。
https://stackoverflow.com/questions/39149714
复制相似问题