我有问题,我不明白为什么会出现错误“ Object.map不是函数...
您可以在这里看到我的代码:
onClick(student_id)
{
let session_id = this.props.match.params.id
let config = {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': `Bearer ${authentication.getToken()}`
}
}
axios.post(`http://127.0.0.1:8000/api/sessions/${session_id}/students/${student_id}`, config)
.then(response => {
this.props.history.push('/')
}).catch(err => console.log(err));
}
render() {
const students = Object.map(student => (
<ul>
<button onClick={this.onClick(student.id)} >Ajouter
{student.name} à la session</button>
</ul>
));
return (
有人可以指导我解决此问题吗? 谢谢
答案 0 :(得分:0)
这是因为Object.map不存在。您想要做的是在学生数组上映射(该数组必须出现在组件的状态/属性中)。
这可以通过使用:
students.map(student => (<ul>your code here</ul>))
答案 1 :(得分:0)
您没有为Object
分配任何值,并且由于Object
是保留关键字,您也无法执行此操作。 Object
没有称为map
的方法,但Array
有。
let arr = [{name: 'Name1', age: 23}, {name: 'Name2', age: 24}, {name: 'Name3', age: 21}]
let stdObj = {name: 'Name1', age: 23, student: true}
//Map an Array
arr.map(obj => console.log(obj.name));
//Map an Object
Object.keys(stdObj).map(data => console.log(stdObj[data]));
答案 2 :(得分:0)
您只能在数组上调用映射函数。不能在对象上调用地图。但是,如果要遍历对象,可以这样做,请检查以下示例
const obj = {'name':'somename','age':23}
Object.keys(obj).map(key => console.log(obj[key]));