【发布时间】:2020-04-29 06:18:03
【问题描述】:
所以我试图用一个按钮的 onClick 按钮生成一个 div,但我收到一个错误,阻止我这样做。
错误:TypeError: this.state.addroom.map is not a function
但是我看到,当我单击按钮时,它没有显示错误,但也没有生成带有按钮的 div。
这是我的代码:
import React, { Component } from 'react';
import Select, { components } from 'react-select';
import styles from '../styles/loginsignup.css'
import axios from 'axios'
import nextId from "react-id-generator";
export default class AccomodationInfo extends Component {
constructor() {
super();
this.state = {
accomcate: null,
addroom: ['one'],
isLoading: true,
}
}
handleClick = event => {
const htmlId = nextId()
event.preventDefault()
const addroom = this.state.addroom
this.setState({ addroom: htmlId })
return (
<div>
{this.state.addroom.map(addrooms => (
<button key= {addroom.id} className={addrooms.modifier}>
{addrooms.context}
</button>
))}
</div>
);
}
render() {
return(
<div>
<button onClick={this.handleClick}>Add</button>
</div>
)
}
}
}
有谁知道是什么原因造成的,我们该如何解决?
【问题讨论】:
-
您的
handleClick不应该返回 jsx。这不是它的工作原理。查看反应文档中的示例reactjs.org
标签: javascript reactjs mern