reactjs - 传递容器状态值的替代方法,其中
问题描述
有什么方法可以将渲染的容器的状态值传递给表单的自定义字段(需要除formcontext之外的其他方式)。
class Example extends react.component{
constructor(props){super(props);this.state={"some stuff"}
}
render(){
return(<Form
"somestuff"
formcontext={this.state}
/>)
}
}
解决方案
你可以使用React.Context
试试下面的代码:
import React from "react";
import ReactDOM from "react-dom";
import "./styles.css";
const FormContext = React.createContext("FormContext");
function Form(props) {
console.log(props);
return <form />;
}
class SomethingElse extends React.Component {
static contextType = FormContext;
render() {
return <Form values={this.context} />;
}
}
const SomethingInTheMiddle = props => {
return <SomethingElse />;
};
class Example extends React.Component {
state = {
a: 1,
b: 2,
c: 3
};
render() {
return (
<FormContext.Provider value={this.state}>
<SomethingInTheMiddle />
</FormContext.Provider>
);
}
}
function App() {
return (
<div className="App">
<Example />
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
推荐阅读
- c# - 如何在 mathdotnet 中使用 Nelder Meade Simplex 算法进行函数最大化
- angular - 如何使用 ion-reorder 重新排序分组项目
- .net - IIS 工作进程 RAM 使用率高,进程转储显示大多数是 TdsParserStateObjectNative 类
- javascript - 比较两个相似的对象(持有相同的键)并返回不同的键值对
- java - 在 Spring 库中模拟 OpenFeign 客户端以进行单元测试,而不是用于 Spring Boot 应用程序
- python - 是否可以断言使用另一个模拟的返回值调用了模拟方法?
- java - Java中删除单链表的节点
- javascript - Angular 指令中的 this 关键字副作用
- c++ - 查找强连接组件的数量
- angular - 如何将 Angular Aniversal 部署到 Azure 应用服务 - Linux | 节点12