2017-10-17 44 views
0

请你能帮我理解什么是对应React元素的相应JSX语法?如何将具有大量属性的对象作为道具传递给React元素?

const data = { 
    className: "myEl", 
    "data-numb": 3, 
    "data-created": 191017 
    //following other 20 attributes 
} 
React.createElement("div",data,"test"); 

我猜你会不会写在JSX语法此元素以这种方式

<div className="myEl" data-numb=3 data-created=191037 ....the other 20 attributes.... /> 

那么,什么是通过作为道具的阵营元素,有一个巨大的物体的理想方式属性的数量?

+0

为什么不只是在子组件中传递data = data和access作为this.props.data.className? –

+0

@chandrasugur - 使用浅等于比较(反正在PureComponents上)对状态和道具进行重新渲染的目的将是避免这种情况的一个原因。 – Adam

+0

@Adam很高兴认识这个。谢谢。 –

回答

6

据我明白你问这个:

const data = { 
    className: "myEl", 
    "data-numb": 3, 
    "data-created": 191017 
    //following other 20 attributes 
} 

<div {...data}/> 
+1

这被称为“传播”语法。 –

-1

为什么不使用的数据存储解决方案与终极版?然后,对于需要来自商店的任何数据的每个组件,您可以通过mapStateToProps将任何您想要的状态传递给组件。从长远来看,这会让你更容易,特别是因为它听起来像你有很多你正在使用的数据。您现在可以使用Alexander的答案,但是如果您还没有使用数据管理解决方案,那么您很快就会想要一个。将这个答案与亚历山大的答案结合起来,在那里你将所有的数据都传递给一个单一的对象,我认为你的生活会更容易。如果您还不熟悉REDX,请务必查看:http://redux.js.org/

mapStateToProps函数是react-redux库的一部分,该库用于将反应连接到redux存储库。这篇文章here是一个很好的帮助,如果你试图围绕它的实际做法,以及你应该如何使用你的反应应用程序的REDX。

相关问题