如何将数组映射中的每三个元素放入 div 反应中
how to put every third element from an array map into a div react
这是我的用户class里面我正在创建道具
class User extends React.Component {
constructor() {
super();
}
render() {
const usersStyle = {
background: 'yellow',
border: '1px solid black'
}
return <div className="users" style={usersStyle}>
<p>имя: {this.props.name}</p>
<p>фамилия: {this.props.surname}</p>
</div>;
}
}
这是我的应用程序 class 在里面我创建了一个数组 users 并且在数组里面有六个对象,每个对象的三元组必须放在一个 div
class App extends React.Component {
constructor() {
super();
this.state = {
users: [
{ name: 'Коля', surname: 'Иванов' },
{ name: 'Вася', surname: 'Петров' },
{ name: 'Петя', surname: 'Сидоров' },
{ name: 'Пётр', surname: 'Иванов' },
{ name: 'Алейсей', surname: 'Петров' },
{ name: 'Сергей', surname: 'Сидоров' },
],
};
}
这里我创建了一张地图
render() {
const users = this.state.users.map((item, index) => {
return <p>{item.name}</p>
});
这里逻辑本身发生了,我创建了一个名为 resultsRender 的数组 created for 并检查是否 i% 3 === 2 添加了一个新的 div,但是如何将三个元素放入其中clearfix class
var resultsRender = [];
for (var i = 0; i < users.length; i++) {
resultsRender.push(users[i]);
if (i % 3 === 2) {
resultsRender.push(
<div className="clearfix">
</div>
);
}
}
return <div>
{resultsRender}
</div>;
}
}
我想这样做
<div class="clearfix">
<p>Коля</p>
<p>Вася</p>
<p>Петя</p>
</div>
<div class="clearfix">
<p>Пётр</p>
<p>Алейсей</p>
<p>Сергей</p>
</div>
但是我是这样理解的
<p>Коля</p>
<p>Вася</p>
<p>Петя</p>
<div class="clearfix"></div>
<p>Пётр</p>
<p>Алейсей</p>
<p>Сергей</p>
<div class="clearfix"></div>
for...循环应将 i
递增 3。然后使用 Array.slice()
获取 3 个项目,然后使用 Array.map()
创建 JSX 行:
const Users = ({ users }) => {
const resultsRender = [];
for (var i = 0; i < users.length; i += 3) {
resultsRender.push(
<div className="clearfix">
{
users.slice(i, i + 3)
.map(user => (
<p>{user.name}</p>
))
}
</div>
);
}
return (
<div>
{resultsRender}
</div>
);
};
const users = [{"name":"Коля","surname":"Иванов"},{"name":"Вася","surname":"Петров"},{"name":"Петя","surname":"Сидоров"},{"name":"Пётр","surname":"Иванов"},{"name":"Алейсей","surname":"Петров"},{"name":"Сергей","surname":"Сидоров"}];
ReactDOM.render(
<Users users={users} />,
root
);
.clearfix {
border: 1px solid blue;
margin: 1px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.1/umd/react-dom.production.min.js"></script>
<div id="root"></div>
这里还有一个简单的选项:
render() {
const users = this.state.users.map((item, index) => {
return <p>{item.name}</p>
});
var resultsRender = [];
let userList = [];
for (var i = 0; i < users.length; i++) {
userList.push(users[i]);
if (i % 3 === 2) {
resultsRender.push(
<div className="clearfix">
{userList}
</div>
);
userList = [];
}
}
return <div>
{resultsRender}
</div>;
}
这是我的用户class里面我正在创建道具
class User extends React.Component {
constructor() {
super();
}
render() {
const usersStyle = {
background: 'yellow',
border: '1px solid black'
}
return <div className="users" style={usersStyle}>
<p>имя: {this.props.name}</p>
<p>фамилия: {this.props.surname}</p>
</div>;
}
}
这是我的应用程序 class 在里面我创建了一个数组 users 并且在数组里面有六个对象,每个对象的三元组必须放在一个 div
class App extends React.Component {
constructor() {
super();
this.state = {
users: [
{ name: 'Коля', surname: 'Иванов' },
{ name: 'Вася', surname: 'Петров' },
{ name: 'Петя', surname: 'Сидоров' },
{ name: 'Пётр', surname: 'Иванов' },
{ name: 'Алейсей', surname: 'Петров' },
{ name: 'Сергей', surname: 'Сидоров' },
],
};
}
这里我创建了一张地图
render() {
const users = this.state.users.map((item, index) => {
return <p>{item.name}</p>
});
这里逻辑本身发生了,我创建了一个名为 resultsRender 的数组 created for 并检查是否 i% 3 === 2 添加了一个新的 div,但是如何将三个元素放入其中clearfix class
var resultsRender = [];
for (var i = 0; i < users.length; i++) {
resultsRender.push(users[i]);
if (i % 3 === 2) {
resultsRender.push(
<div className="clearfix">
</div>
);
}
}
return <div>
{resultsRender}
</div>;
}
}
我想这样做
<div class="clearfix">
<p>Коля</p>
<p>Вася</p>
<p>Петя</p>
</div>
<div class="clearfix">
<p>Пётр</p>
<p>Алейсей</p>
<p>Сергей</p>
</div>
但是我是这样理解的
<p>Коля</p>
<p>Вася</p>
<p>Петя</p>
<div class="clearfix"></div>
<p>Пётр</p>
<p>Алейсей</p>
<p>Сергей</p>
<div class="clearfix"></div>
for...循环应将 i
递增 3。然后使用 Array.slice()
获取 3 个项目,然后使用 Array.map()
创建 JSX 行:
const Users = ({ users }) => {
const resultsRender = [];
for (var i = 0; i < users.length; i += 3) {
resultsRender.push(
<div className="clearfix">
{
users.slice(i, i + 3)
.map(user => (
<p>{user.name}</p>
))
}
</div>
);
}
return (
<div>
{resultsRender}
</div>
);
};
const users = [{"name":"Коля","surname":"Иванов"},{"name":"Вася","surname":"Петров"},{"name":"Петя","surname":"Сидоров"},{"name":"Пётр","surname":"Иванов"},{"name":"Алейсей","surname":"Петров"},{"name":"Сергей","surname":"Сидоров"}];
ReactDOM.render(
<Users users={users} />,
root
);
.clearfix {
border: 1px solid blue;
margin: 1px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.1/umd/react-dom.production.min.js"></script>
<div id="root"></div>
这里还有一个简单的选项:
render() {
const users = this.state.users.map((item, index) => {
return <p>{item.name}</p>
});
var resultsRender = [];
let userList = [];
for (var i = 0; i < users.length; i++) {
userList.push(users[i]);
if (i % 3 === 2) {
resultsRender.push(
<div className="clearfix">
{userList}
</div>
);
userList = [];
}
}
return <div>
{resultsRender}
</div>;
}