如果在映射函数中 reactjs 元素的内部循环
if inside loop of reactjs element in map function
大家好,我在 Reactjs 中解决此任务时遇到问题,不熟悉 JSX,并且没有很多 JS 教程。谁能帮我解决这个问题,我想在嵌套用户列表嵌套深度的用户内部做一个循环,最多为 3 个。
这是我的代码示例:
var testData = [{
"username": "test1",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": null
}]
}]
},{
"username": "test2",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": null
}]
}]
}];
function handleClick(item) {
console.log(item);
};
var Tester = React.createClass({
displayName: 'Tester',
render: function render() {
return React.createElement(
'ol', {
id: "user-list",
'className': ''
},
this.props.users.map(function(item, i) {
return React.createElement(
'li',
{
'className': '',
id: "user-li-" + i,
onClick: handleClick.bind(this, item),
key: i
},
item.username
//here should be next nest?
)
})
);
}
});
React.render(React.createElement(Tester, {
users: testData
}), document.getElementById('example'));
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js" data-semver="0.14.7" data-require="react@*"></script>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<div id="example"></div>
</body>
</html>
您可以递归地呈现用户:
var testData = [{
"username": "test1",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": null
}]
}]
},{
"username": "test2",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": [{
"username": "test2",
"users": null
}, {
"username": "test3",
"users": null
}, {
"username": "test4",
"users": null
}]
}]
}];
function handleClick(item) {
console.log(item);
};
var Tester = React.createClass({
displayName: 'Tester',
render: function render() {
var renderUsers = function(users, deep) {
if (deep === 0)
return null;
return React.createElement(
'ol', {
id: "user-list",
'className': ''
},
users.map(function(item, i) {
return React.createElement(
'li',
{
'className': '',
id: "user-li-" + i,
onClick: handleClick.bind(this, item),
key: i
},
[React.createElement('span', null, item.username)].concat(item.users ? renderUsers(item.users, deep-1) : [])
)
})
);
}
return renderUsers(this.props.users, 3);
}
});
React.render(React.createElement(Tester, {
users: testData
}), document.getElementById('example'));
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js" data-semver="0.14.7" data-require="react@*"></script>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<div id="example"></div>
</body>
</html>
相关文章:
- JavaScript goto 标签如何使用内部循环
- 对于循环-在循环内部循环,用于获取带有ascii值的字母表
- JsViews复选框从内部循环绑定
- Chrome内部循环行为的意外Javascript
- NetSuite行项目删除内部循环问题
- 使用 jQuery 在 <选择> 内部循环
- javascript,包括google函数内部循环中的变量
- promises在npm Q中的内部循环
- 仅在jQuery函数内部循环问题
- 对于内部循环函数(新手)
- 在嵌套的 ng 重复的内部循环中排序
- 如果在映射函数中 reactjs 元素的内部循环
- JavaScript参数内部循环
- 尝试在渲染内部循环时,反应意外的令牌{}
- 如何使用生成器在内部循环带有try-catch块的异步代码
- Dojo”;在“;复选框更改内部循环范围问题
- 在脚本内部循环一个单词并对其进行更改
- 如果我将数组名称作为字符串传递给JS函数,那么如何在函数内部循环
- 需要循环两个循环,并在内部循环中使用延迟迭代
- 编辑php内部循环的特定记录