reactjs - 如何在文件内的反应js中传递数据
问题描述
我在 ReactJs 中有下一个组件:
function App() {
function handleClick(e) {
console.log('click ', e);
localStorage.setItem('my-item', e.key);
console.log(localStorage.getItem('my-item'))
}
return (
<div>
<Menu
selectedKeys={e.key}
style={{ width: 500px}}
onClick={handleClick}
>
...another code
}
在那里我使用了 AntDesign。该函数handleClick
在我的本地存储中写入key
一个项目。它有效,但我想传递selectedKeys
我在本地存储中传递的密钥,所以我想这样做selectedKeys={e.key}
,但我不能这样做。如何将数据e.key
从函数传递到<Menu>
标签?
解决方案
使用 state 怎么样:
使用 React 钩子useState
:
import React, { useState } from React;
然后
const [selectedKeys, setSelectedKeys] = useState([]);
然后
function handleClick(key) {
localStorage.setItem('my-item', key);
let newKeys = selectedKeys.slice(0); // you may need to clone the array
newKeys.push(key);
setSelectedKeys(newKeys); // or push it into an array if there is many.
}
您的Menu
组件将如下所示:
<Menu
mode="inline"
selectedKeys={selectedKeys}
openKeys={openKeys}
onOpenChange={onOpenChange}
style={{ width: 500px}}
onClick={() => handleClick(e.key)}>
全部一起 :
import React, { useState } from React;
const App = () => {
const [selectedKeys, setSelectedKeys] = useState([]);
const handleClick = (key) => {
localStorage.setItem('my-item', key);
let newKeys = selectedKeys.slice(0); // you may need to clone the array
newKeys.push(key);
setSelectedKeys(newKeys); // or push it into an array if there is many.
}
return {
<Menu
mode="inline"
selectedKeys={selectedKeys}
openKeys={openKeys}
onOpenChange={onOpenChange}
style={{ width: 500px}}
onClick={() => handleClick(e.key)}>
}
}
推荐阅读
- postgresql - 如何从 POSTGRES 中的 SELECT 查询中排列值
- python - 使用熊猫解析文件时,气流工作者不理解文件编码
- android-progressbar - Android 用户界面和自定义进度条
- stackexchange-api - 我怎样才能获取物品的总量?
- javascript - 使用角度图的圆环图
- javascript - 外部 JS 中的未定义函数仅在 Internet Explorer 中,但 Chrome 和 Edge 工作得很好
- javascript - javascript从复选框输入字符串值中提取子字符串
- autodesk-forge - 有没有办法将 2D 图纸中的坐标与项目的 3D 视图相匹配?
- google-distancematrix-api - OVER_QUERY_LIMIT - 距离矩阵 API - 不推荐使用无钥匙访问
- java - IllegalStateException:已添加片段