React没有合并我对状态对象所做的更改,而是完全覆盖它。
这可能是由上下文引起的吗?我不确定是否可以直接作为道具传递分派事件。我尝试过在另一个函数中包装setParams
,比如在“提升状态”文档中,但是没有效果。
预期产量
{width: 400, height: 400, strokeWeight: 0.25, color: "#d9eb37", resolution: 10}
电流输出
{color: "#d9eb37"}
React上下文保存状态
const Context = createContext();
const Provider = ({ children }) => {
const [params, setParams] = useState({
width: 400,
height: 400,
strokeWeight: 0.25,
color: "#ad3e00",
resolution: 10
});
return (
<Context.Provider value={{ params, setParams }}>
{children}
</Context.Provider>
);
};
通用输入组件
const Input = () => {
const { params, setParams } = useContext(Context);
render(
<input
type="color"
value={params.color}
onChange={(e) => setParams({ color: e.target.value })}
/>
);
}
useState
不会像类组件中的setState
那样合并状态,你必须自己完成这项工作。
onChange={(e)=
问题内容: 我对react.js还是很陌生,并且正在通过构建砌体样式布局进行试验。 我将每个元素呈现给DOM,然后需要遍历每个项目并根据前面的元素应用x和y位置。 初始模型如下所示: (我只显示了一个项目以使内容简短)。 完成循环并获取x和y数据后,我想将其应用于podStyle对象。我用以下数据调用setState: 这似乎从模型中删除了所有当前数据,而只剩下了podStyle数据。我是否误解了
问题内容: 我有以下代码: 我想用新内容替换文件中的旧内容。但是,当我执行代码时,将附加文件“ test.xml”,即,我的旧内容被新的“替换”内容所取代。为了删除旧内容而只保留新内容,我该怎么办? 问题答案: 您需要先写入文件的开头,然后再使用(如果要进行就地替换): 另一种方法是读取文件,然后使用再次打开它: 无论是也将改变inode的文件的数量(我测试过两次,一次是与Ubuntu 12.04
问题内容: 因此,我一直在为编程类编写抽象作业,但遇到了问题。我现在的目标是能够使用抽象,然后能够使用矩形和椭圆形绘制一个简单的城市,例如矩形建筑物或灯柱上的椭圆形灯。 我在编译时收到的错误是:MyTestApp.Rectangle不是抽象的,并且不会覆盖MyTestApp.Shape中的抽象方法drawEllipse(java.awt.Graphics)。该错误显示在类Shape下方的“矩形扩展
请帮帮忙!!我一直在到处寻找,但没有得到答案 错误:MainApplication不是抽象的,并且不覆盖抽象方法 环境 android/build.gradle系统 App/build.gradle 我的主应用程序 错误: 任务:app:compileDebugJavaWithJavac C:\Users\user\Downloads\Scripts\kantongin mobile\trader
我有一个方法应该用新内容覆盖当前文件,但是FileWriter()只是附加新内容,而不是覆盖旧内容。 这是我的FileWriter的设置方式 这是保存方法 当我运行此方法时会出现问题,它没有覆盖文件,而是将新内容附加到文件中。 我想要的: 发生了什么:
假设我定义了一个插件,如下所示: 在当地的一个建筑里。Gradle,我写 我希望合并两个buildscript部分,以便在插件中定义存储库,在build.gradle中定义依赖项,但似乎本地声明重写了插件,我最终出现了一个错误,指示“没有定义存储库”。 如果我通过配置注入从顶层构建。Gradle,结果是一样的吗? 也许正确的解决方案是让插件提供一个ext闭包来定义useMyRepos(),类似于m