如何使用变量的值作为键值对的键名

时间:2017-08-28 05:02:32

标签: javascript reactjs

我有一个日历组件,我想标记第二天的日期(nextDay)。我正在使用react-native-calendars

export default class CustomCalender extends React.Component {
    render() {
        const today = moment().format("YYYY-MM-DD");
        const nextDay = moment().add(1, 'days').format("YYYY-MM-DD");  // 2017-08-29

        const mark = {
            '2017-08-16': {selected: true, marked: true}
        };

        return (
            <View style={styles.container}>
                <Text style={styles.labelText}>Select a date</Text>
                <Calendar
                    minDate={today}
                    onDayPress={(day) => {
                        console.log('selected day', day)
                    }}

                    markedDates={mark}
                />
            </View>
        )
    }
}

如何使用nextDay(即2017-08-29)的数据作为商标常量,而不是像“2017-08-16”这样做?

我试过这种方式:

const mark = {
    today: {selected: true, marked: true}
};

但不是使用today的值(即2017-08-29),而是使用today本身作为密钥的名称。

2 个答案:

答案 0 :(得分:0)

首先将标记定义为空对象。然后分配它。

const today = moment().format("YYYY-MM-DD");
const mark = {};
mark[today] = {selected: true, marked: true};

重新引用:JavaScript set object key by variable

答案 1 :(得分:0)

一个简单的例子可能会帮助您更好地理解它:

let foo = 'hello';
let bar = {};

//using the value stored inside foo as a key for the object
bar[foo] = 'world';
console.log(bar);

//using 'foo' directly as a key instead of the value it stored
bar = {
  foo: 'world'
}
console.log(bar);