我正在做一个项目,我有 2 个 mongo 集合,集合 A(症状列表)都包含与它们相关的集合 B(条件)中的项目。
"_id" : ObjectId("5dc4bc92b6523a203423f2fa"),
"name" : "Cough",
"symptoms" : [
ObjectId("5dc4bc19299dfc46843a65f0"),
ObjectId("5dc4bc19299dfc46843a65f2")
]
反之亦然
"_id" : ObjectId("5dc4bc19299dfc46843a65f0"),
"name" : "Lung Cancer",
"description" : "blah blah string",
"symptoms" : [
ObjectId("5dc4bc92b6523a203423f2fa")
]
我调用它们的代码如下所示
class Home extends React.Component {
state = {
conditions: [],
symptoms: [],
}
componentDidMount() {
this.getConditionsMethod();
this.getSymptomsMethod();
}
getConditionsMethod = () => {
API.getConditions()
.then(data => {
console.log(data);
data.data.sort((a, b) => a.name.localeCompare(b.name));
this.setState({
conditions: data.data
})
})
.catch(err => console.log(err))
};
getSymptomsMethod = () => {
API.getSymptoms()
.then(data => {
console.log(data);
data.data.sort((a, b) => a.name.localeCompare(b.name));
this.setState({
symptoms: data.data
})
})
.catch(err => console.log(err))
};
和我的相关部分 render() {return (
<Col >
<Row>
<Col className="symp">
<div className="doubleCol">
{this.state.symptoms.map(item => (
<ListItem key={item.ObjectID}>
<input
type="radio"
name="selector"
value="option 2"
checked={false}
className="sympCheck"
/>
{item.name}
</ListItem>
))}
</div>
</Col>
</Row>
<Row>
<Col className="cond">
<div className="doubleCol">
{this.state.conditions.map(item => (
<ListItem key={item.ObjectID}>
{item.name}
</ListItem>
))}
</div>
</Col>
</Row>
</Col>
我目前在症状列表上的按钮实际上并没有做任何事情。目标是单击按钮时,条件列表将仅显示具有该症状的那些条件,而不是呈现所有这些条件。我已经想到了一些可能有效但实际上还没有开始试验的方法。任何帮助或将我指向正确的方向都会很棒,这样我就不会在“这可能是一种方法,没有用”的兔子洞中浪费太多时间