【问题标题】:Context being lost when passing values as typed values将值作为类型值传递时上下文丢失
【发布时间】:2018-05-06 10:18:53
【问题描述】:

我对 typescript 还很陌生,虽然我对它没问题,但我遇到了一个我似乎找不到解决方案的问题。

我正在尝试在我的反应应用程序中传递一些数据,如下所示

form = ({handleSubmit, handleChange, handleBlur, values, errors}) => {

typescript 正确地抱怨这些不是类型化的值,但我可以使用它们并满足 linter 的唯一方法是。

form = (handleSubmit: any, handleChange: any, handleBlur: any, values:any, errors:any) => {

不幸的是,这给我留下了我期望定义为未定义的值,因为它不再经历解构。

任何帮助将不胜感激

【问题讨论】:

    标签: reactjs typescript


    【解决方案1】:

    在添加了any 类型的第二种情况下,您缺少{}destructuring 缺少props。以下应该解决这个问题

    form = (
     { //The object destructuring in action
        handleSubmit,
        handleChange,
        handleBlur,
        values,
        errors
     } : { //Here goes the type declaration
        handleSubmit: any,
        handleChange: any,
        handleBlur: any,
        values:any,
        errors:any
    }) => {
       // rest of your code
    }
    

    【讨论】:

    • 如上所述,如果我重新添加 {},我通常无法满足 linter 或 typescript,第二个示例是我可以编译代码的唯一方法。
    • @Knade 我已经更新了答案。这应该让打字稿开心。
    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多