function callback() {
console.log('This is callback');
}
Vue.use({
install(Vue) {
Vue.prototype.$callback = callback
}
})
{
someMethod() {
this.$callback(/* ... */)
}
}
const myCookieValue = Cookie.get(MY_COOKIE_KEY);
// достаёте компонент из пропсов, обратите внимание, что
// имя переменной должно начинаться с большой буквы
const Component = this.props.component;
// ну и рендерите его
<Component />
^[A-Za-zА-Яа-я]+$/g
Если более широко, погуглить про символьные классы, юникод const invertTree = ({ value, left, right }) => {
const node = { value };
if (left) {
node.right = invertTree(left);
}
if (right) {
node.left = invertTree(right);
}
return node;
};
Где React Fiber?
Я не могу понять работает ли React Fiber на версии 16.4 уже сейчас по дефолту (видимо нет раз я могу использовать старые синтаксические конструкции)
или все же нужно вместо react-dom импортить react-fiber-dom (ну или как-то по другому)
при сабмите this.request(e.target) отрабатывает как нужно, но setState не срабатывает совсем.
handleSubmit = e => {
};
this.setState({
currentState: {
...this.state.currentState,
submited: true,
},
});
PS как я могу изменить состояние после возвращения request. В функции .then контекст this я получить не могу
this.request(e.target).then(() => {
this.setState({
currentState: {
...this.state.currentState,
submited: true
}
});
});
handleSubmit = async e => {
e.preventDefault();
await this.request(e.target);
this.setState({
currentState: {
...this.state.currentState,
submited: true
}
});
};
Можно заметить что onChange не возвращает текущий введенный символ в событие.
handleChange(event) {
this.setState({value: event.target.value});
console.log(this.state.value);
}
handleChange(event) {
this.setState({value: event.target.value}, () => console.log(this.state.value));
}
valiadte = () => {
if (форма не валидная) {
return false
}
return true
}
render() {
<form> ...
<button disabled={this.validate()}> отправить </button>
}
...
state: { hadSubmitted: false, };
componentDidUpdate(prevProps, prevState) {
const { hadSubmitted } = this.state;
if (hadSubmitted) {
//...validate
}
}
handleSubmit(e) {
...
this.setState({
hadSubmitted: true,
});
}
validate(state, form) {
...
this.setState({ hadSubmitted: false, })
}