【发布时间】:2021-10-28 05:02:48
【问题描述】:
我已经看到这个问题以前被问过很多次,但没有一个答案对我来说有意义。在尝试了我能找到的所有解决方案之后,我决定自己问。
以下是我的代码,主要问题是在 DOM filteredData 中仅在第二次点击时发生变化。请注意,projs 是包含获取的数据的道具,这些数据会被过滤并显示
const langs = ["react", "next js", "material-ui", "tailwind css", "firebase"];
const [projectData, setProjectData] = useState([]);
const [filteredData, setFilteredData] = useState([]);
const [category, setCategory] = useState("");
useEffect(() => {
setProjectData(projs);
}, []);
const handleCategory = (res) => {
setCategory(res.data);
const filter = projectData.filter((data) => data.category === category);
setFilteredData(filter);
};
按钮:
{langs.map((data, index) => (
<button
key={index}
class="px-2 sm:px-6 py-2 ring-2 font-semibold ring-portfBtnLight rounded-md transform hover:scale-110 transition duration-500"
onClick={() => handleCategory({ data })}
>
{data}
</button>
))}
我现在很迷茫,任何帮助将不胜感激
【问题讨论】:
标签: reactjs state use-effect use-state