javascript - React Context TypeError:BlurChangeValue 不可迭代
问题描述
我在此示例中使用React Context和使用 React Context 的本地存储我想在另一个组件中获取值,但 getBlurChangeValue
是不可迭代的:
SideBarBlurChange.jsx
import React, {useState, createContext} from "react";
import {getTrackBackground, Range} from "react-range";
const STEP = 0.1;
const MIN = 0;
const MAX = 100;
export const BlurContext = createContext([]);
export default function SideBarBlurChange(props) {
const ls = parseInt(window.localStorage.getItem('values'));
const [values, SetValues] = useState(ls ? [ls] : [50]);
const SaveChanges = () => {
localStorage.setItem('values', values);
}
return (
<>
<BlurContext.Provider value={{
BlurChangeValue: [values, SetValues],
}
}>
<div
style={{
display: "flex",
justifyContent: "center",
flexWrap: "wrap",
}}
// More jsx
</BlurContext.Provider>
</>
);
}
边栏.jsx
export default function SideBar(props) {
const {BlurChangeValue} = React.useContext(BlurContext)
const [values] = BlurChangeValue;
return (
<div className={"headline_sidebar_wrapper"}>
<article className={`${Blur.glass} ${Blur.up}`}>
<nav id="sidebar" className="sidebar-wrapper modal">
<div style={{backgroundImage: `url(${SideBarBackground})`}}>
<div style={{background: SideBarTheme, backdropFilter: `blur(${values})`}}
className={`${Blur.SideBar_Page_Content} ${Blur.SideBarContainer}`}>
</div>
</div>
</nav>
</article>
</div>
);
}
我想使用values
JSX 中的值来获得模糊效果,所有其他上下文都可以正常工作,我只是删除了它们以便更容易阅读代码。
解决方案
我认为这里的主要问题是BlurContext
. 改为尝试:
export const BlurContext = createContext({
BlurChangeValue: [],
});
进一步阅读React.createContext。
推荐阅读
- jquery - 十月 CMS 前端 ajax 过滤问题(未捕获的 TypeError: $form.request is not a function)
- python - Kivy Python ID 问题
- python - Python 柯里化和部分
- uml - 如何在 UML 2.0 组件图中可视化文件由某些组件创建和使用?
- node.js - ServiceBus 绑定破坏了 Node.js Azure 函数
- java - 在使用 postgresql 排除主键后执行 NamedNativeQuery Join 查询时面临错误
- sql - BigQuery 案例 - 对于 col1,如果 col 2 等于 'a' & 'b' then True else = False
- makefile - GNU make - 未创建映射文件
- c# - asp.net core mvc中的Kendo Ui无法获取DataValueField值
- flask - 选择未选择的选项