【发布时间】:2023-03-06 07:50:01
【问题描述】:
我仍然是 ReactJS 的初学者,我正在创建一个使用一系列口袋妖怪的项目。用户选择了pokemon的一种类型,然后我必须根据用户的选择返回一个列表。
我有一个包含所有口袋妖怪的列表,但有些口袋妖怪可以属于多个类型,如下面的示例所示:
您能告诉我如何创建一个仅包含用户选择的口袋妖怪类型的列表吗?我想我可以使用reducer() 做到这一点,但我不知道该怎么做。
这是我输入codesandbox的代码
import React from "react";
import { useHistory } from "react-router-dom";
import { Button } from "@material-ui/core";
import { types } from "./data";
import "./styles.css";
const App = () => {
const history = useHistory();
const handleType = (type) => {
history.push({
pathname: "/list",
state: type
});
};
return (
<div className="content">
<h3>Pokémon Types</h3>
{types.results.map((type) => (
<Button
key={type.name}
style={{
margin: "5px"
}}
variant="contained"
onClick={() => handleType(type.name)}
>
{type.name}
</Button>
))}
</div>
);
};
export default App;
import React from "react";
import { useLocation } from "react-router-dom";
import { pokemons } from "../data";
const List = () => {
const { state } = useLocation();
console.log("state: ", state);
console.log(pokemons);
return <div>List</div>;
};
export default List;
提前感谢您的帮助。
【问题讨论】:
-
我建议您缩小问题范围,只分享相关代码。看起来你也不需要 reducer(),filter() 应该这样做
标签: javascript reactjs mapreduce