javascript - 在 rails 上使用react :Iterating through an array of activerecord

标签 javascript ruby-on-rails ruby reactjs react-rails

我不熟悉 React with Rails 和 react-rails gem 的使用。

我正在尝试遍历所有电梯并通过 Lift 组件显示电梯名称。

Controller Action 索引提供:

class LiftsController < ApplicationController

    def index
        @lifts = Lift.all
    end
end

assets/javascripts/components 下,我有一个 lift.js.jsx 组件。

class Lifts extends React.Component {
  render() {
    const arr = {this.props.data}.map((x) => <li>Hello {x.liftname}!</li>);
    return (<ul>{arr}</ul>);    
  }
}

在 View 页面中,我传递的数据如下所示:

<%= react_component('Lifts', data: @lifts) %>

但是,我收到错误:

SyntaxError: unknown: Unexpected token (3:20)
  1 | class Lifts extends React.Component {
  2 |   render() {
> 3 |       const arr = {this.props.data}.map((x) => <li>Hello {x.liftname}!</li>);
    |                     ^
  4 |       return (<ul>{arr}</ul>);    
  5 |   }
  6 | }

我的问题是:

  1. 哪里出了问题
  2. 是否有任何调试器可以提供除意外 token 之外的更多信息?

最佳答案

可能这一行在第一种情况下应该没有花括号,像这样:

const arr = this.props.data.map((x) => <li>Hello {x.liftname}!</li>);

而且您还必须为每个 li 项定义 key 属性,否则 React 会发出警告。

关于javascript - 在 rails 上使用react :Iterating through an array of activerecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48603216/

相关文章:

ruby-on-rails - Ruby 从数组中随机选择有时会重复返回相同的值

python - Redis lua 脚本 - 用 Ruby 编写的 lua 脚本的 python 等价物是什么?

Ruby require 'file' 不起作用,但 require './file' 可以。为什么?

javascript - 如何使用 Jest 测试 React Router

ruby-on-rails - 如何理解cancancan gem的load_resource和authorize_resource方法?

ruby-on-rails - 每个 session 允许一次操作

ruby-on-rails - Rails 4 嵌套浅层路由 : how to get parent id in child controller?

javascript - 重新排列 DOM 元素

javascript - 无法使用 CasperJS 在没有表单的情况下填充输入元素

javascript - 咕噜声 : Watch and synchronize files