javascript - 处理状态并传递给组件/react.js
问题描述
我正在学习 js 并做出反应,但仍然在努力useState
传递信息。我已经拥有的:一个按钮列表,根据用户文本输入进行过滤。我现在需要的是:单击其中一个按钮后,需要将其传递到下一个站点(主页/内容)。我怎么能做到?我需要使用状态吗?
有人能帮我吗?我错过了什么?
export const content = [
"Apple",
"Banana",
"Blueberry",
"Cherry",
"Avocado",
"Pasta"
];
export default function BadgeButtonList({ content }) {
return (
<BadgeButtonSection>
{content.map(item => {
return (
<BadgeButton list light key={item.name} item={item.toUpperCase()} />
);
})}
</BadgeButtonSection>
);
}
export default function Home() {
const [ searchValue, setSearchValue ] = useState("");
const [ selectedButton, setSelectedButton] = useState("");
const history = useHistory();
const filteredContent = content.filter(item =>
item.toLowerCase().includes(searchValue.toLowerCase())
);
function handleSearch(value) {
setSearchValue(value);
}
return (
<WrapperDiv>
<Header />
<Switch>
<Route exact path="/home">
<Searchbar onSearch={handleSearch} />
<BadgeButtonList
content={filteredContent}
onClick={() => {
setSelectedButton();
history.push("/home/content");
}}
/>
</Route>
<Route exact path="/home/content">
<BadgeButton light item={selectedButton} />
</Route>
</Switch>
</WrapperDiv>
);
}
解决方案
useState
返回一个只有两个元素的数组。第一个元素是状态值;第二个值是设置值的方法。
您需要将单数更改useState
为两个:
const [ searchValue, setSearchValue ] = useState('');
const [ selectedButton, setSelectedButton ] = useState('');
推荐阅读
- android - 将徽章添加到底部导航并且无法引用 getOrCreateBadge
- javascript - 运行 npm start 时出现“spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell ENOENT”错误
- outlook - 在 Outlook 中一次配置多个邮件帐户
- python - 使用固定列名旋转 DataFrame
- python - ids 在带有孩子的 python kivy boxlayout 中为空
- javascript - 使用 object.keys(arguments).length VS arguments.length
- node.js - 如何将 axios 响应推送到退出的数组?
- python - 我可以在每个场景之前使用 create_engine()、sessionmaker()、declarative_base() 或其他方法清空内存中的 sqlite 测试数据库吗?
- python - 蟒蛇/熊猫;拆分元素
- c# - 根据来自不同线程的条件写入线程中的 TCP 流