【发布时间】:2020-07-13 20:20:39
【问题描述】:
我想要做的是显示两个模块,但我收到“mod”未定义的类型错误。这里有一些关于我如何传递所有内容的信息。我还注意到的另一件事是,当我将模块和 mod 都传递给组件时,模块将在没有 mod 时定义。如果我切换 mod 和模块,那么 mod 将被定义而不是模块?不知道为什么会这样。
这是我的 JSON:
enter code here[
{
"title": "Favorite Sports",
"itemList": [
{
"key": "Her sports",
"modules": [
{"label": "BaseBall", "value": "checked"},
{"label": "Volleyball"}
]
},
{
"key": "His sports",
"mod": [
{"label": "Soccer"},
{"label": "Football"}
]
}
]
}
]
这是我如何使用我的组件的想法:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import { render } from '@testing-library/react';
import SystemListData from '../src/data.json'
import Component1 from './Component1';
class App extends Component {
constructor(props) {
super(props);
this.state = {
systemList: []
}
}
componentDidMount() {
const systemList = SystemListData;
this.setState({
systemList
})
}
render() {
const { systemList } = this.state;
return (
<div className="App">
{systemList.map((system, index) => {
return <div key={index}><Component1 itemList={system.itemList} /></div>
})}
</div>
)
}
}
export default App;
下一步:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
import React from 'react'
import Component2 from './Component2'
const Component1 = ({itemList}) => {
return (
<div>
{itemList.map((item, index) => {
return <Component2 key={index} header={item.key} modules={item.modules} mod={item.mod} />
})}
</div>
)
}
export default Component1
import React from 'react'
import Component3 from './Component3'
const Component2 = ({ header, modules, mod }) => {
return (
<div>
{header}
<Component3 modules={modules} mod={mod} />
</div>
)
}
export default Component2
import React from 'react'
const Component3
= ({ modules, mod }) => {
return (
<div>
{modules.map((module, index) => {
return <div key={index} className=""><input type="checkbox" defaultChecked={module.value} /><label className="ml-2">{module.label}</label></div>
})}
{mod.map((module, index) => {
return <div key={index} className=""><input type="checkbox" /><label className="ml-2">{module.label}</label></div>
})}
</div>
)
}
export default Component3
目前有什么想法吗?谢谢!
【问题讨论】:
标签: javascript arrays reactjs multidimensional-array components