如何像使用 map 函数的数组一样使用我的对象
How can use my object like a array using with map function
import React, { useContext } from 'react'
import styles from './subTheme-select.module.css'
import StoreContext from '../store'
const SUB_THEME = {
blue: 'Blue',
yellow: 'Yellow',
pink: 'Pink',
purple: 'Purple',
orange: 'Orange',
green: 'Green'
}
function SubThemeSelect() {
const store = useContext(StoreContext)
return (
<div className={styles.container}>
{SUB_THEME.map((subTheme) => (
<label className={styles.label}>
<input
type="radio"
value={subTheme}
name={subTheme}
checked={subTheme === store.subTheme}
onChange={(e) => store.changeSubTheme(e.target.value)}
/>
{SUB_THEME[subTheme]}
</label>
))}
</div>
)
}
export default SubThemeSelect
我想要一个像 SUB_THEME 这样的数组 [blue, yellow, pink, purple, orange, green]
我该怎么做。
这是错误信息。
如何处理这个问题?
由于您正在尝试映射一个对象,因此您需要使用 Object.keys 其中 returns 您可以循环的对象键数组。
Object.keys(SUB_THEME).map((key,index) => {
const subTheme = SUB_THEME[key]
return (
<label className={styles.label}>
<input
type="radio"
value={subTheme}
name={subTheme}
checked={subTheme === store.subTheme}
onChange={(e) => store.changeSubTheme(e.target.value)}
/>
{subTheme}
</label>
)
})
您可以如下使用:
Object.keys(SUB_THEME).map( (key) => {
console.log(SUB_THEME[key]
})
您想要 Object.keys()
函数或 Object.values
const SUB_THEME = {
blue: 'Blue',
yellow: 'Yellow',
pink: 'Pink',
purple: 'Purple',
orange: 'Orange',
green: 'Green'
}
//this returns the keys
const theme_keys = Object.keys(SUB_THEME)
//this returns the values
const theme_values = Object.values(SUB_THEME)
然后你可以像这样映射它们
theme_keys.map( key => {/*code here*/})
theme_values.map( key => {/*code here*/})
Object.keys(SUB_GROUPED).map(x => {
console.log(x)
})
首先使用Object.keys(SUB_THEME)获取对象键。
import React, { useContext } from 'react'
import styles from './subTheme-select.module.css'
import StoreContext from '../store'
const SUB_THEME = {
blue: 'Blue',
yellow: 'Yellow',
pink: 'Pink',
purple: 'Purple',
orange: 'Orange',
green: 'Green'
}
function SubThemeSelect() {
const store = useContext(StoreContext)
return (
<div className={styles.container}>
{SUB_THEME.map((subTheme) => (
<label className={styles.label}>
<input
type="radio"
value={subTheme}
name={subTheme}
checked={subTheme === store.subTheme}
onChange={(e) => store.changeSubTheme(e.target.value)}
/>
{SUB_THEME[subTheme]}
</label>
))}
</div>
)
}
export default SubThemeSelect
我想要一个像 SUB_THEME 这样的数组 [blue, yellow, pink, purple, orange, green] 我该怎么做。
这是错误信息。
如何处理这个问题?
由于您正在尝试映射一个对象,因此您需要使用 Object.keys 其中 returns 您可以循环的对象键数组。
Object.keys(SUB_THEME).map((key,index) => {
const subTheme = SUB_THEME[key]
return (
<label className={styles.label}>
<input
type="radio"
value={subTheme}
name={subTheme}
checked={subTheme === store.subTheme}
onChange={(e) => store.changeSubTheme(e.target.value)}
/>
{subTheme}
</label>
)
})
您可以如下使用:
Object.keys(SUB_THEME).map( (key) => {
console.log(SUB_THEME[key]
})
您想要 Object.keys()
函数或 Object.values
const SUB_THEME = {
blue: 'Blue',
yellow: 'Yellow',
pink: 'Pink',
purple: 'Purple',
orange: 'Orange',
green: 'Green'
}
//this returns the keys
const theme_keys = Object.keys(SUB_THEME)
//this returns the values
const theme_values = Object.values(SUB_THEME)
然后你可以像这样映射它们
theme_keys.map( key => {/*code here*/})
theme_values.map( key => {/*code here*/})
Object.keys(SUB_GROUPED).map(x => {
console.log(x)
})
首先使用Object.keys(SUB_THEME)获取对象键。