我正在努力将用户数据从Redux状态中拉出,并放入我的mapbox组件。
我只想在地图上显示当前用户信息,但是我一直收到此错误:
.. src / app / views / map / BasicMap.jsx第293:22行:未定义“用户” no-undef
这里是我的BasicMap.jsx文件中的代码:
// Trying to get user info from redux store
import { connect } from "react-redux";
const BasicMap = () => {
// Use redux store to get user info
const mapState = (state) => ({
user: state.USER_SET_DATA.user.displayName,
});
return (
<ReactMapGL
{...viewport}
mapStyle="mapbox://styles/veleter/ck7xdy1yo1bkj1ipmsbhe9c96"
mapboxApiAccessToken={process.env.REACT_APP_MAPBOX_TOKEN}
onViewportChange={setViewport}
onClick={addMarker}
>
<Popup
key={userMarker.id + Math.random}
latitude={userMarker.lat}
longitude={userMarker.long}
closeButton={true}
closeOnClick={false}
dynamicPosition={true}
onClose={() =>
setShowUserPopup({
...showUserPopup,
[userMarker.id]: false,
})
}
anchor="top"
>
<div className="popup">
<h1>{user}</h1>
<LogEntryForm location={userMarker} />
</div>
</Popup>
我已删除了一些您不需要查看的代码。我也尝试过:
const mapState = (state) => ({
user: state.user,
});
有Redux工具,并且USER_SET_DATA正在传递用户信息。
如何从状态访问用户数据并在地图应用程序的H1中使用它? “声明了mapState但从未读取过”
感谢您的帮助!
应该是这样:
const BasicMap = ({ user }) => {
...
}
const mapState = (state) => ({
user: state.user
});
export default connect(mapState)(BasicMap)