函数参数解构

时间:2018-04-13 08:55:31

标签: javascript destructuring

有没有办法可以在函数参数中对数据进行解构?

const AgendaItem = ({ item }) => {
  const { venue, organiser, startTime, endTime, description } = item;
  return (
    <View>
      <Text>Location: {venue}</Text>
      <Text>Consultant: {organiser}</Text>
      <Text>Time: {`${startTime} - ${endTime}`}</Text>
      <Text>Description: {description || "None"}</Text>
      <Text>Description: {description || "None"}</Text>
    </View>
  );
};

export default AgendaItem;

如果我这样做:

const AgendaItem = ({ venue, organiser /*..etc*/ }) => {

当我undefined时,我得到return

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

根据我的理解,item是一个对象并拥有自己的属性。

您可以这样做:

const AgendaItem = ({ item: { venue, organiser, startTime, endTime, description } }) => {
  return (
    <View>
      <Text>Location: {venue}</Text>
      <Text>Consultant: {organiser}</Text>
      <Text>Time: {`${startTime} - ${endTime}`}</Text>
      <Text>Description: {description || "None"}</Text>
      <Text>Description: {description || "None"}</Text>
    </View>
  );
};

export default AgendaItem;

答案 1 :(得分:1)

试试这个 const AgendaItem = ({item: { venue, organiser /*..etc*/ }}) => {

答案 2 :(得分:-1)

const AgendaItem = ({ item }) => { ...

相同

const AgendaItem = (arg) => { const item = arg.item; ...

因此,如果您执行const AgendaItem = ({ venue, organiser ...etc }) => {并且仍然传递了具有item属性的对象,那么venueorganiseretc将正确undfined因为引擎将在参数对象中查找这些属性而不能找到它们。