1
lodashの_.mixin
または_.chain
を使用して私のカスタム関数をチェーンしていました。JavaScriptで動作しないLodash mixinクラス
の作業コード::それは以下のようにクラスの外にいたとき、コードがうまく働いていた
function start(data, param1, param2) {
_.mixin({
'someFunc': this.someFunc,
'anotherFunc': this.anotherFunc
})
// Chaining directly works
_.someFunc(data, param1)
.anotherFunc(param2)
// Using chain works
return _.chain(data)
.someFunc(param1)
.anotherFunc(param2)
}
function someFunc(data, param) {
return data;
}
function anotherFunc(data, param) {
return data + param;
}
私はクラスのコードを使用した瞬間、それはTypeError: _.chain(...).someFunc is not a function
import * as _ from 'lodash';
class MyClass {
constructor() {
//.... code
}
start(data, param1, param2) {
// Does not work
_.mixin({
'someFunc': this.someFunc,
'anotherFunc': this.anotherFunc
})
// Does not work
_.someFunc(data, param1)
.anotherFunc(param2)
// Also does not work
return _.chain(data)
.someFunc(param1)
.anotherFunc(param2)
// Using them separately works:
let result = _.someFunc(param1);
let result2 = _.anotherFunc(param2);
}
someFunc(data, param) {
return data;
}
anotherFunc(data, param) {
return data + param;
}
}
を投げ始めました
なぜこれが起こっているのかについて誰でも知ることができれば、本当に感謝しています。
返り値_.chain(data).someFunc(param1).anotherFunc(param2).value() '' 'チェーンメソッドがカスタム関数を連鎖させないのですか?そして、なぜこれはクラスの外では動作しますが、内部では動作しませんか? – mjolnir
はい、チェーンはチェーンのカスタム機能を実行します。 'return ...'行は私のためにうまくいきます、あなたはあなたのエラーに関するより多くの情報を提供できますか?どのバージョンのロダッシュを実行していますか? – EpicOrange
Lodash 4.17.2。私はwebpack/angularでそれを使用しています。チェーンメソッドはクラスの外で私のために働く。クラスの内部で使用すると、それは壊れます。 – mjolnir