reactjs - 将 this.props.history.push 传递给另一个组件的一个变量中的属性。反应 JS
问题描述
我创建了一个密码表单,需要将值传递给另一个 js 中本地化的一个变量。
范围是:
App.js
|
|
|----- Login.jsx
|
|
|_____ Home.jsx
|----- import { getMarvelCharacters } from '../lib/apiCalls';
应用程序.js
const Home = lazy(() => import('./Components/Home'));
const Login = lazy(() => import('./Components/Login'));
const App = () => (
<Router>
<Suspense fallback={<div>Loading...</div>}>
<Switch>
<Route exact path="/" component={Login}/>
<Route path="/home" component={Home}/>
</Switch>
</Suspense>
</Router>
);
登录.jsx
handleSubmit = event => {
//The alert show both value ok..
alert('publickey is: ' + this.state.publickey + ' and privatekey is: ' + this.state.privatekey);
event.preventDefault();
try {
this.props.history.push({
pathname: '/home',
state: {
publickey: this.state.publickey,
privatekey: this.state.privatekey,
}
})
} catch (e) {
alert(e.message);
}
}
但我需要将这些值放入 apiCalls.js
const PUBLIC_KEY = " here ";
const PRIVATE_KEY = " here ";
请问,最好的制作方法是什么
解决方案
您可以使用 Redux 将数据从您的登录组件推送到 redux 存储,并在应用程序内部的另一个组件中使用它
如果你不想使用 Redux,那么你必须在主根组件(通常是 App.js)中创建函数,并使用 props 在子组件中传递这些函数,子组件会将值传播到根组件,或者您可以在子组件内部创建函数并将值传播到根组件(取决于每个组件的用例,例如该功能是针对一个组件还是所有组件完成)
要重用这些值,您将根组件的状态作为子组件内部的道具传递
希望我的回答有点帮助
推荐阅读
- python - Python RabbitMQ - KEDA 保持打开连接
- primefaces - 在 primefaces v8 中设置日期选择器位置
- angular - 剑道列过滤器内的角度材料日期选择器问题
- julia - 如何在 Julia 中定义“复杂的 Float64”变量?
- plugins - Dynamics 365 插件调用外部 REST API - SSL/TSL 无法创建通道问题
- android - 如何扩展recyclerView?
- c# - Wpf C#中ListBox ItemTemplate中的鼠标悬停和背景颜色
- angular - 如何对 MatBottomSheet 进行单元测试
- javascript - 如何使用图像 url 在 React Ag-Grid 单元格中添加图像
- plugins - RetrieveMultiple 查询为 Fetch Expression 时如何放置 And 和 OR 过滤器类型