【问题标题】:Issue: variable is not defined问题:未定义变量
【发布时间】:2019-09-21 10:10:02
【问题描述】:

我对简单的打字稿代码有疑问。我正在尝试将对象映射到字符串,结果出乎意料,该方法总是返回“desc”。我试图调试代码,但奇怪的是,没有定义 id 变量。当我试图在控制台上记录 'state[0].id' 时,打印了正确的值。谢谢您的帮助!

interface Pageable {
   id: string,
   desc: boolean
}

private mapSortedToSortingString(state: Pageable[]): string {
    if (state.length > 0) {
        let id: string = state[0].id;
        let sort = id + ',' + (state[0].desc) ? 'desc' : 'asc';
        console.log(sort);
    }

    return (state.length > 0) ? (state[0].id + ',' + (state[0].desc) ? 'desc' : 'asc') : "";
}

【问题讨论】:

    标签: reactjs typescript webpack


    【解决方案1】:

    (只是部分答案,但需要格式化。)

    由于运算符优先级,您的三元组无论如何都会不正确。

    在你的三元组周围加上括号,例如,第一个:

        const sort = id + ',' + ((state[0].desc) ? 'desc' : 'asc');
    

    或者做的更清楚,把它作为一个中间变量分解出来。


    不相关,但由于未重新分配,请使用const

    至于为什么是undefined,我们看不到你的数据,所以不知道。它是异步的吗(在这种情况下console.log 可能会产生误导)?

    【讨论】:

    • id 还没有定义,但是有了这个,我可以解决问题了,谢谢!当我在 'id' 声明之前打印 'state[0].id' 时,值会正确打印,但 'id' 变量总是未定义,这很奇怪。
    猜你喜欢
    • 2017-09-22
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2018-01-08
    • 2021-05-30
    • 2011-12-22
    相关资源
    最近更新 更多