reactjs - React:如何将值传递给我的主 App() 函数
问题描述
我有一个反应应用程序,我想将一个值(“groupId”)传递给主应用程序组件。
我的应用组件定义为function App()
. 我尝试使用以下方式传递参数值:
索引.tsx:
import React from 'react';
import ReactDOM from 'react-dom';
import './scss/index.scss';
import App from './App';
const targetDivName= 'myapp-ui';
const targetDiv = document.getElementById(targetDivName);
const groupId: string = targetDiv?.getAttribute("data-group-id") ?? '';
ReactDOM.render(
<React.StrictMode>
<App groupId={ groupId } />
</React.StrictMode>,
targetDiv
);
应用程序.tsx:
import React from "react";
import { Box } from "./components/Box";
import styles from './scss/App.module.scss';
function App(groupId: string) {
return (
<div className={ styles.orchestratorUi }>
<Box groupId={ groupId } />
</div>
);
}
export default App;
但这会产生以下错误(编译并运行):
Type '{ groupId: string; }' is not assignable to type 'string'.ts(2322)
如何通过我的 App() 将 HTML 代码中的值传递到主组件(Box
在本例中)。
解决方案
道具作为对象传递,所以改变
function App(groupId: string) {
至
// vvvvvvvvvvvvvvvvvvv−−−−−− declaring the type of props
function App({groupId}: {groupId: string}) {
// ^^^^^^^^^−−−−−−−−−−−−−−−−−−−−−−−−− using destructuring
这将第一个参数声明为App
type {groupId: string}
,并groupId
使用解构从道具中获取。
推荐阅读
- node.js - Docker:使用一个 Dockerfile 运行两个服务
- java - 如何将意图从另一个活动发送到 MainActivity?(反应原生)
- php - 将 PDF 文件保存为“数据” - 使用 PHP MPDF
- eclipse - Eclipse Java EE IDE 2021-06 启动 tomcat 9 服务器出现错误
- c++ - 从 Visual Studio 检查进程的环境变量
- docker - 使用 nginx 映像进行多阶段 docker 构建
- azure - 从 Azure 数据工厂发送时,发票端点不接受日期格式
- java - 从Birt下载时如何更改文件名?
- reactjs - 我可以在本机反应中使用函数而不是颜色名称吗
- javascript - 图像未在 ejs 中呈现