Я не уверен, спрашиваете ли вы о редукторах redux, и в этом случае я бы посоветовал вам избегать таких методов, как push
, поскольку они изменяют данный ввод ...
Кроме того, Ramda и fp в целом продвигает неизменный подход к преобразованию данных ...
__ Следующее должно помочь вам сделать то, что вам нужно, конечно, вам нужно будет найти раздел (индекс), с которым вам нужно работать.
const addCoordinates = (section, coords, state) => R.over(
R.lensPath(['sections', section, 'geometry_linestring']),
R.append(coords),
state,
);
// ====
const state = {
sections: [
{
geometry_linestring: [
{ longitude: 10, latitude: 20 },
{ longitude: 50, latitude: -320 },
],
}
],
};
console.log(
addCoordinates(0, { message: 'Hello World' }, state),
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.0/ramda.js" integrity="sha512-P+CxnI2T1ohL0L2CCoq/FZmfTms2+pOw5xxeYghPovQAmBDdQb6E7Yk74lB/v84c046R1fM2ecfAhFsPzleAag==" crossorigin="anonymous"></script>