это потому, что вы используете набор.
вот что происходит, допустим, вы набрали 6 городов:
props.cities = [ a , b , c , d , e , f ]
uniqueSet = [ a , b , c , d , e , f ]
citys = [ b , c , d , e , f ]
теперь, когда вы добавляете еще один «a», ваш «uniqueSet» "сохранит первый a, поэтому его не будет в конце вашего нарезанного массива.
, поэтому вам нужно:
на редукторе, добавить новый город в начало массива:
case actionTypes.ADD_SEARCHED_CITY:
return {
...state,
citys: [action.payload,...state.citys],
};
и в свой компонент searchCities :
function SearchedCitys(props) {
const r = props.citys
const uniqueSet = Array.from(new Set(r));
const citys = uniqueSet.slice(0,5)
return (
<Fragment>
<div className="searched-citys-container">
{citys.map(city => (
<City key={uuidv4()} city={city} />
))}
</div>
</Fragment>
);
}
если вы хотите показать последний добавленный город справа, просто переверните нарезанный массив
const citys = uniqueSet.slice(0,5).reverse()