无法使用通过道具发送的数组

时间:2017-02-25 15:07:10

标签: javascript reactjs

我通过道具将数组发送到组件,但我不能在阵列上使用地图。它说

  

.map不是函数

我的代码:

def get_user(jwt)
    decoded_token = JWT.decode jwt, Rails.application.secrets.secret_key_base, true, { :algorithm => 'HS256' }
    current_user = User.find((decoded_token[0])['sub']))
    current_user
end

这就是Chrome React开发工具的样子:

enter image description here

2 个答案:

答案 0 :(得分:2)

问题是,无论何时将任何数据从父传递到子传递,它都会通过道具传递,您需要在子组件中接收道具并访问特定值,如下所示:

authors

props

第二个工作正常的原因:因为道具是一个对象,当您编写props.authors时,这意味着您只从对象obj = {a:1,b:2,c:3} let {a} = obj; console.log(a);收到{{1}}值。在这种情况下,您不需要撰写{{1}}。

检查此示例:



{{1}}




答案 1 :(得分:1)

道具将作为对象传递,因此现在authors充当props的别名。只要使用数组声明prop,就可以访问authors上的props属性。

const AuthorList = (props) => {
  return(
     // ..
            {props.authors.map(author => 
                <AuthorListRow key={author.id} author={author} />
            )}
     // ..
 );
};