Да, вы можете не входить в фильтры, возвращая что-то ранее на основе вашего ProgramsLoading
, а затем изменить свой map
, который возвращает пустой массив и создает 2 дополнительных массива в каждом рендере для reduce
, который будет использовать объект только с 2 массивами, которые вам нужны, все в 1 цикле.
Также учтите, что вы вызываете FilterPrograms
для переменной вашей карты, и это сбивает с толку, потому что это текущая программа, а вместо этого FilterPrograms
звучит больше как функция.
class Home extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
this.props.actions.getProgramsStart();
}
render() {
const { ProgramsLoading, programs } = this.props.state;
//check if you are loading, so you dont need to apply filters or whatever you add (filter/map creates a new array each time)
if(ProgramsLoading) return <div><Loader style={{ display: "block" }} content="Program List loading" /></div>
const defaultValue = {SeriesFilterData: [], MoviesFilterData =[]}
const reducerFunction = (accum, currentValue)=>{
//if this check is an AND for all the cases, return directly if the item doesnt match.
if(currentValue.releaseYear < 2010) return accum;
if(currentValue.programType==="series"){
accum.SeriesFilterData.push(currentValue);
} else if(currentValue.programType==="movie"){
accum.MoviesFilterData.push(currentValue);
}
return accum;
}
const results = programs.reduce( reducerFunction, defaultValue);
// using {...result} will destructure to be (SeriesFilterData, MoviesFilterData) separeted props
return (
<div id="home">
<h1>program data</h1>
<SomeComponent {...resulst} />
</div>
);
}
}
Используйте это:
. "c:\program files\test.exe"
На самом деле еще лучшее решение было бы:
Invoke-Item "c:\program files\test.exe"
или использование псевдонима:
ii "c:\program files\test.exe"
Используя средства Вызывать-объекта, что надлежащий обработчик файлов Windows использовался бы. Таким образом для EXE-файла это выполнило бы его. Для .doc файла, например, это открыло бы его в Microsoft Word.
Вот одна из самых удобных командных строк PowerShell вокруг.Попробуйте:
ii .
Попытайтесь поместить амперсанд перед командой. Например,
& 'C:\Program Files\winscp\winscp.exe'