反应错误 index.js:1452 警告:数组或迭代器中的每个子项都应该有一个唯一的 "key" 道具
React error index.js:1452 Warning: Each child in an array or iterator should have a unique "key" prop
我正在尝试使用 React 中的 Mobx 遍历商店。这是我的 contact.jsx.
import React, { Component } from 'react';
import Navbar from '../components/Navbar';
import Footer from '../components/Footer';
import Jumbotron from '../components/Jumbotron';
import {inject, observer} from 'mobx-react';
@inject('MemberStore')
@observer
class Contact extends Component {
handleSubmit = (e) => {
e.preventDefault();
const member = this.member.value;
const email = this.email.value;
// const email = this.email.value;
this.props.MemberStore.addMember({member, email});
this.member.value = '';
this.email.value = '';
}
render() {
const {MemberStore} = this.props;
return (
<div>
<Navbar />
<Jumbotron title="Contact Page" subtitle="You want to get in touch"/>
<div className="container">
<h2>You have {MemberStore.memberCount} members.</h2>
<form onSubmit={e => this.handleSubmit(e)}>
<input type="text" placeholder="Enter Your Name" ref={input => this.member = input }/>
<div>
<input type="text" placeholder= "Enter Your Email" ref={input => this.email = input }/>
</div>
<button>Submit</button>
</form>
<ul>
{MemberStore.members.map(({member, email}) => (
<li key={member}>
{member}
{email}
</li>
))}
</ul>
</div>
<Footer />
</div>
)
}
}
导出默认联系人;
现在它只返回电子邮件,我收到以下错误。
index.js:1452 Warning: Each child in an array or iterator should have a unique "key" prop.
但是我没有把它包括在地图函数中吗?任何帮助,将不胜感激。
以下是我的会员商店的代码。
import {observable, action, computed} from 'mobx';
class MemberStore {
@observable members = [];
@action addMember({name, email}) {
const existing = this.members;
this.members = existing.concat({name,email});
}
@computed get memberCount() {
return this.members.length;
}
}
const store = new MemberStore();
export default store;
我不知道 member
中的内容是什么,每次迭代的行应该都是一样的,所以试试看:
<ul>
{MemberStore.members.map(({member, email}, index) => (
<li key={index}>
{member}
{email}
</li>
))}
</ul>
您的 members
数组存储具有两个属性的项目:name
和 email
。
在您的地图函数中,您正在使用解构 ({member, email})
。 members
项中没有 member
属性。将 member
更改为 name
(如果要将其用作键,请确保每个项目都具有 name
属性 的唯一值)。
<ul>
{MemberStore.members.map(({ name, email }, i) => (
<li key={i}>
{name}
{email}
</li>
))}
</ul>
我正在尝试使用 React 中的 Mobx 遍历商店。这是我的 contact.jsx.
import React, { Component } from 'react';
import Navbar from '../components/Navbar';
import Footer from '../components/Footer';
import Jumbotron from '../components/Jumbotron';
import {inject, observer} from 'mobx-react';
@inject('MemberStore')
@observer
class Contact extends Component {
handleSubmit = (e) => {
e.preventDefault();
const member = this.member.value;
const email = this.email.value;
// const email = this.email.value;
this.props.MemberStore.addMember({member, email});
this.member.value = '';
this.email.value = '';
}
render() {
const {MemberStore} = this.props;
return (
<div>
<Navbar />
<Jumbotron title="Contact Page" subtitle="You want to get in touch"/>
<div className="container">
<h2>You have {MemberStore.memberCount} members.</h2>
<form onSubmit={e => this.handleSubmit(e)}>
<input type="text" placeholder="Enter Your Name" ref={input => this.member = input }/>
<div>
<input type="text" placeholder= "Enter Your Email" ref={input => this.email = input }/>
</div>
<button>Submit</button>
</form>
<ul>
{MemberStore.members.map(({member, email}) => (
<li key={member}>
{member}
{email}
</li>
))}
</ul>
</div>
<Footer />
</div>
)
}
}
导出默认联系人;
现在它只返回电子邮件,我收到以下错误。
index.js:1452 Warning: Each child in an array or iterator should have a unique "key" prop.
但是我没有把它包括在地图函数中吗?任何帮助,将不胜感激。 以下是我的会员商店的代码。
import {observable, action, computed} from 'mobx';
class MemberStore {
@observable members = [];
@action addMember({name, email}) {
const existing = this.members;
this.members = existing.concat({name,email});
}
@computed get memberCount() {
return this.members.length;
}
}
const store = new MemberStore();
export default store;
我不知道 member
中的内容是什么,每次迭代的行应该都是一样的,所以试试看:
<ul>
{MemberStore.members.map(({member, email}, index) => (
<li key={index}>
{member}
{email}
</li>
))}
</ul>
您的 members
数组存储具有两个属性的项目:name
和 email
。
在您的地图函数中,您正在使用解构 ({member, email})
。 members
项中没有 member
属性。将 member
更改为 name
(如果要将其用作键,请确保每个项目都具有 name
属性 的唯一值)。
<ul>
{MemberStore.members.map(({ name, email }, i) => (
<li key={i}>
{name}
{email}
</li>
))}
</ul>