reactjs - 在 React 打字稿上将功能从一个组件传递到另一个组件的正确方法
问题描述
我是打字稿的新手,在将父组件的功能作为道具传递给另一个组件时遇到问题,我在网上搜索但没有任何用处
作为参考,我在这里附上 JSX 代码,[TSX 是我想要的]
这是父组件
export default function Notification() {
const [notification, setnotification] = useState(['alert', 'booking'])
return (
<div>
<ShowNotification setnotification={setnotification} notification={notification} />
</div>
)
}
这是子组件
const ShowNotification = ({notification,setnotification}) => {
notification.map((item, index) => {
<li>item</li>
})
}
对我来说主要问题是在打字稿中指定道具类型
解决方案
stackoverflow 的答案很少,这可能会对您有所帮助。
但总而言之,它就像传递其他普通道具一样。
这是可以帮助您理解的基本示例:
// button.tsx
interface IProps {
children: React.FC | string;
onClick: (e: any) => void;
type: "button" | "reset";
}
const Button: React.FC<IProps> = (props) => {
return (
<button type={props.type} onClick={props.onClick}>
{props.children}
</button>
);
};
export default Button;
import Button from "./button";
export default function App() {
const myFunction = (e: any) => {
console.log("Event is: ", e);
};
return (
<Button type="button" onClick={myFunction}>
Click Me
</Button>
);
}
在这里,您可以看到,我已将 传递myFunction
给Button
组件作为道具,并从Button
组件本身调用该方法,每当有人按下按钮时,它都会执行myFunction
父App.tsx
文件中的方法。
推荐阅读
- r - 在 for 循环中向 R 数据框添加新行而不使用 NROW()
- c# - 使用 x:Static 从 XAML 引用另一个程序集中定义的枚举?
- android - viewpager 图像,如按钮收藏夹
- reactjs - 嵌套表单输入的 Formik FieldArray 输入值
- sql - 在 Pandas/SQL 中加载/分析一堆文本文件
- r - R包'randomForest'未安装
- javascript - 使用 Google Apps Scripts (GAS) V8 定义私有类字段
- django - Windows IIS 10 不会提供来自 Anaconda/Django 2.2 的静态文件。. . 我怎样才能解决这个问题?
- scala - 如何将 `List[IO[Unit]]` 转换为 `Stream[IO,Unit]`
- string - 此字符串解压缩的最佳算法