我是 React 新手,无法将使用数组上的 map() 函数创建的 6 个按钮的值连接到来自 API 请求的 6 个类别。
我试图在类组件的状态中定义一个类别,但我不确定如何使按钮的名称动态匹配 API 的类别。
到目前为止,这是我的代码:
import axios from 'axios';
import Card from 'react-bootstrap/Card';
import Button from 'react-bootstrap/Button';
import ButtonCategory from '../ButtonCategory/ButtonCategory';
import CategoriesCard from '../CategoriesCard/CategoriesCard';
import WinnerCard from '../WinnerCard/WinnerCard'
import './ButtonsCategories.css'
export class ButtonsCategories extends Component {
state = {
category: []
}
handleClick = () => {
axios.get('http://api.nobelprize.org/2.0/nobelPrizes?limit=2&sort=desc&nobelPrizeCategory=' + this.state.category + '&format=json&csvLang=en')
.then(res => {
const categoryData = res.data.nobelPrizes;
console.log(categoryData)
// console.log("CATEGORY", categoryData?.category?.en)
this.setState({
category: this.state.category
})
}).
catch(err => console.log(err))
};
render() {
//BUTTONS CATEGORIES
const allCategoriesButtons = ["Physics", "Chemistry", "Medicine", "Literature", "Peace", "Economics"];
const allCatMap = allCategoriesButtons.map((button) => {
return < ButtonCategory
key={button.toString()}
value={button}
name={button}
// valueOf={this.state.category}
onClick={this.handleClick}
/>
})
return (
<div className="container">
<div className="btn-group w-100">
{allCatMap}
</div>
</div>
)
}
}
export default ButtonsCategories;
看起来很简单,但我想不出如何通过将 this.state.category 连接到按钮来更改它。
非常欢迎任何帮助