Такая штука решила бы все проблемы. Только она не работает.
Если ты напишешь так, то словишь stack overflow, так как setState() побуждает render()
// где то считаем vLines
{vLines.map((el, i) => (....
при изменении offsetX и offsetY будет вызываться render()
// this.mainVLine = this.textLine(0-this.xOffset, 0-this.yOffset, 0-this.xOffset, this.props.height-this.yOffset);
const { xOffset, yOffset } = this.props; // всегда актуальное значение из пропсов
this.mainVLine = this.textLine(0-xOffset, 0-yOffset, 0-xOffset, this.props.height-yOffset);
countArr
.map(itemL => (itemL[1] - itemL[0].length))
.map(n => n < 0 ? 0 : n)
// [0, 1, 3, 0]
.reduce((accum, currentValue) => {
const result = parseInt(accum + currentValue);
console.log(accum, currentValue, result) // смотри
return 4 - result;
});
balance = document.querySelector('#balance')
balance_sum = document.querySelector('#balance_sum')
// .... searchingBy = []
const result = await Word.find({
characters: {
$in: [...searchingBy] // когда characters есть в массиве searchingBy
}
});
const data = searchingBy.map(glyph =>
result.find(doc => doc.characters === glyph) || { /* пустой объект или что-то другое, на случай если в базе ничего нет по этому иероглифу */ }
)
должен привести в Json
взять из полученного обьекта массив Users, и только тогда уже делать сорт
как использовать sort в нутри метода map
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { personsFetchData } from '../Actions/persons';
class PersonsData extends Component {
componentDidMount() {
this.props.fetchData('Some api');
}
render() {
const { users } = this.props.persons;
// сортируем
users.sort((a, b) => a.registration_timestamp - b.registration_timestamp)
// готово
console.log(users)
return(
<ul style={{display: 'flex'}}>
{ users ? users.map(user => {
const userDataRegTime = user.registration_timestamp;
console.log(userDataRegTime);
<li style={{margin: '20px'}} key={ user.id }>
<div><img src={ user.photo } style={{width: '30px'}}></img></div>
<div><h2> { user.name } </h2></div>
<div><p> { user.position } </p></div>
<div><p> { user.phone } </p></div>
</li>
}) : null }
</ul>
);
}
}
const mapStateToProps = state => ({
persons: state.persons
});
const mapDispatchToProps = dispatch => ({
fetchData: url => dispatch(personsFetchData(url)),
});
export default connect(mapStateToProps, mapDispatchToProps)(PersonsData);
users.sort((a, b) => b.registration_timestamp - a.registration_timestamp)
нууу.. то что надо считать каждый раз, то надо считать каждый раз
для читабельности можно это вынести в отдельный метод, и вызывать некий this._calculateLines()
можно через пропс прокинуть какой-нибудь this.props.returnNumberLines(horiz, vert) и вызывать его перед финальной стадией рендера, когда будут готовы значения