git commit -m "Мои изменения"
git pull
/// резолвим конфликты
git commit -m "Конфликты зарезолвены"
git push
git commit -m "Мои изменения"
git pull
/// резолвим конфликты с другими разработчиками, которые разрабатывают feature
git commit -m "Конфликты зарезолвены"
git merge develop
/// резолвим конфликты с мастером
git commit -m "Конфликты с основной веткой зарезолвены"
git push
class ArrowUp extends Component {
state = {
isVisible: false,
};
componentDidMount() {
window.addEventListener('scroll', this.handleScroll);
}
componentWillUnmount() {
window.removeEventListener('scroll', this.handleScroll);
}
handleScroll = () => {
if (window.scrollY >= SOME_VALUE && !this.state.isVisible) {
this.setState({ isVisible: true });
} else if (window.scrollY < SOME_VALUE && this.state.isVisible) {
this.setState({ isVisible: false });
}
};
render() { /* ... */ }
}
Обращался к API в componentDidMount() и отправлял в стейт, но это вызывает перерендеринг компонента и в доках считается нежелательно.
You should populate data with AJAX calls in the componentDidMount lifecycle method. This is so you can use setState to update your component when the data is retrieved.
function builtInReverse(string) {
return string.split('').reverse().join('');
}
function forLoopReverse(string) {
let newString = '';
for (let i = string.length - 1; i >= 0; i--) {
newString += string[i];
}
return newString
}
function recursionReverse(string) {
return string === '' ? string : recursionReverse(string.substr(1)) + string.charAt(0);
}
function reverseString(string, handler) {
return handler(string);
}
console.log( reverseString('test', builtInReverse) ); // 'tset'
console.log( reverseString('test', forLoopReverse) ); // 'tset'
console.log( reverseString('test', recursionReverse) ); // 'tset'
Может кто-нибудь подсказать почему так происходит и как исправить?
class AddItems extends React.Component {
state = {
value: '',
items: [],
}
inputChange = ({ target: { value } }) => {
this.setState({ value });
}
addNewItem = () => {
if (this.state.value) {
this.setState({
items: [ ...this.state.items, {
text: this.state.value,
id: (new Date()).getTime().toString(),
} ],
value: '',
});
}
}
render() {
return (
<div className="addItems">
<div className="addSection">
<input type="text" value={this.state.value} onChange={this.inputChange} />
<input type="submit" onClick={this.addNewItem} />
</div>
<div className="listSection">
<ul>{this.state.items.map((item) => <li key={item.id}>{item.text}</li>)}</ul>
</div>
</div>
)
}
}