如何在Immutable.JS中识别传递给Record子类构造函数的值何时无效



我知道,如果键名称最初不是在子类中定义的,Record子类不接受构造函数中的键值对。但是,我希望能够识别在Record的构造函数中传递无效密钥对的时间。

例如,

export default class MessageTester extends Record ({
successStatus: null,
message: null,
}) {
constructor(dataSet) {
/* Pseudo-code
* if (dataSet keys do not match MessageTester keys) {
*     console.log('Keys passed to constructor do not match.');
*/
super(dataSet);
}
}

我考虑过从dataSet和MessageTester中检索密钥并进行比较,但后来我想出了另一个解决方案。我将通过从dataSet值中检索密钥来测试密钥。我无法使用this关键字使Records的get方法在类内工作。我上面列出的主要问题的任何解决方案都将非常棒。

let dataSetKeys = Object.keys(dataSet);
for (let i = 0; i < dataSetKeys.length; i++) {
if(this.get(dataSetKeys[i]) === undefined)
console.log('Invalid key found.');
}

好吧,所以我至少为bottm代码片段找到了一个解决方案。我应该一直使用super-istead,因为get是一种记录的方法。。。。。对不起,我犯了一个简单的错误。令人好奇的是,有更好的解决方案吗?

let dataSetKeys = Object.keys(dataSet);
for (let i = 0; i < dataSetKeys.length; i++) {
if(super.get(dataSetKeys[i]) === undefined)
console.log('Invalid key found.');
}

最新更新