【发布时间】:2021-01-18 08:55:46
【问题描述】:
我有一个父组件(App.jsx)、子组件(Child.jsx)和一个 Hook(useHook hook un Hook.jsx 文件)。
Hook.jsx 下面
import { useState, createContext } from "react";
export default function useHook() {
const [one, setOne] = useState("First Option");
const changeOne = value => {
console.log("calling changeOne");
console.log(value);
setOne(value);
};
return {
one,
changeOne
};
}
App.jsx 下面
import React, { useState, useContext } from "react";
import "./style.css";
import useHook from "./Hooks";
import Child from "./Child";
export default function App() {
const details = useHook();
return (
<div>
<Child />
Inside Parent Class: {details.one}
</div>
);
}
下面的Child.jsx
import React from "react";
import "./style.css";
import useHook from "./Hooks";
export default function Child() {
const details = useHook();
return (
<div>
<form
onChange={e => {
details.changeOne(e.target.value);
}}
>
<select id="inputState">
<option value="First Option">First Option</option>
<option value="Second Option">Second Option</option>
</select>
</form>
Inside Child class: {details.one}
</div>
);
}
我希望在子组件中修改的状态“一”在父组件中使用。 我在父组件中导入了钩子。但看起来这两个组件都保留了一个单独的状态副本。我在子组件中所做的更改不会反映在父组件中。为什么会这样?如何在父组件中使用子组件修改的状态。
【问题讨论】:
标签: reactjs react-hooks setstate