Получение ReferenceError: полPeer не определен [дубликат]

Когда у вас есть много значений, это обычно признак того, что ваш дизайн нуждается в повторной обработке.

Формируйте прерывистые классы case, которые затем объединяются в более крупные. Это также упрощает понимание кода, обоснование и поддержку кода. Как и в обход этой проблемы у вас есть.

Например, если бы я хотел хранить пользовательские данные, я мог бы это сделать ....

case class User(name: Name, email: String)
case class Name(first: String, last: String)

С таким количеством вещей, это, конечно, не было бы необходимо. Но если у вас есть 22 вещи, которые вы пытаетесь втиснуть в один класс, вы все равно захотите сделать такой класс прерывистого случая.

1
задан Neil Lunn 5 March 2019 в 19:58
поделиться

1 ответ

Переменная, определенная ключевым словом let, видна только внутри блока scope , что означает область, определенную фигурными скобками. В вашем коде вы определяете genderPeer дважды, но в обоих случаях он виден только внутри этого небольшого блока кода:

if (employee.gender == 'M') {
    const lookupObject = {
        id: employee.peerID,
        gender: 'F',
    }
    let genderPeer = genderPayPeers.find(x => x._id == lookupObject);

} else {
    const lookupObject = {
        id: employee.peerID,
        gender: 'M',
    }
    let genderPeer = genderPayPeers.find(x => x._id == lookupObject);
}

Чтобы исправить это, вы должны переместить определение переменной за пределы этих областей, например:

let genderPeer;

if (employee.gender == 'M') {
    const lookupObject = {
        id: employee.peerID,
        gender: 'F',
    }
    genderPeer = genderPayPeers.find(x => x._id == lookupObject);

} else {
    const lookupObject = {
        id: employee.peerID,
        gender: 'M',
    }
    genderPeer = genderPayPeers.find(x => x._id == lookupObject);
}
0
ответ дан mickl 5 March 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: