不显示 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
我只是想将 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