Вы можете сделать это без устаревшего componentWillReceiveProps
с чем-то вроде этого:
export class Styles extends Component {
isDirtyTwo = false;
isDirtyThree = false;
..
componentDidUpdate(prevProps) {
this.isDirtyTwo = this.isDirtyTwo || !isEqual(prevProps.two, this.props.two);
this.isDirtyThree = this.isDirtyThree || !isEqual(prevProps.three, this.props.three);
if (!_.isEmpty(this.props.one) && this.isDirtyTwo && this.isDirtyThree) {
this.isDirtyTwo = false;
this.isDirtyThree = false;
this.myMethod();
}
}
..
}
Это вызовет myMethod
, когда one
пуст, и оба других реквизита изменились в какой-то момент. (Я предполагаю, что когда one
пуст, он остается таким, но если нет, вы можете добавить для него другое свойство.)
Я считаю, что ваша команда parallel
составлена неправильно. Вы можете запустить конвейер команд, как показано ниже:
parallel -j -2 "tar xf $tarball_name -O {} | grep -ac $pattern" :::: file_subset_in_tar.txt
Также обратите внимание, что обратные метки и использование cat
не нужны, параметры можно подавать в parallel
из файла с помощью ::::
.