Да как-то странно на собеседовании...
Больше спрашивают про прежний опыт и рассказ о себе.
У реактовцев все совсем плохо, да?
import styled from 'styled-components';
const Wrapper = styled.div`
max-width: 1200px;
margin: 0 auto;
padding: 0 16px;
`;
import { css } from 'styled-components';
const createMediaByConditionFn = conditionFn => (arg, ...args) =>
props => conditionFn(props) && css(arg, ...args);
const mobile = createMediaByConditionFn(props => props.device.isMobile);
const desktop = createMediaByConditionFn(props => !props.device.isMobile);
const media = {
mobile,
desktop,
};
export default media;
import styled from 'styled-components';
import { media } from 'app-lib';
const Wrapper = styled.div`
max-width: 1200px;
margin: 0 auto;
padding: 0 16px;
${media.mobile`
padding: 0 8px;
`}
`;
props => (props => props.device.isMobile)(props) && css`padding: 0 8px;`;
const createWithVAT = vat => price => price + price * vat / 100;
const createWithVAT = function(vat) {
return function(price) {
return price + price * vat / 100;
}
}
const currentVAT = VAT_RATES.GB; // 20
const withVAT = createWithVAT(currentVAT);
price => price + price * 20 / 100;
function(price) {
return price + price * 20 / 100;
}
{
vat: 20,
setVat(vat) {
this.vat = vat,
},
calculatePriceWithVAT(price) {
return price + price * this.vat * 100,
}
}
<MegaDatePicker name="some_date" value={some_date} onChange={this.handleChange} />
handleChange(event) {
const { target } = event;
const value = target.type === 'checkbox' ? target.checked : target.value;
const { name } = target;
this.setState({
[name]: value,
});
}
<MegaDatePicker name="some_date" value={some_date} onChange={this.handleChange} />
{
target: {
name: 'some_data', // значение this.pops.name
value: '12-12-18', // дата в нужном формате
},
}
componentDidUpdate(prevProps, prevState) {
if (prevState.selectedDay !== this.state.selectedDay) {
this.handleChange(this.state.selectedDay);
}
}
handleChange = value => {
const { formatter, onChange } = this.props;
if (formatter) {
value = formatter(value);
}
onChange({
target: {
name,
value,
},
});
};
import { fromJS } from 'immutable';
import { LOGOUT } from "../constants/auth";
import {
GET_SETTINGS,
GET_SETTINGS_SUCCEEDED,
GET_SETTINGS_FAILED,
PUT_SETTINGS_SUCCEEDED
} from "../constants/settings";
const initState = fromJS({
isFetching: false,
isError: false,
data: null,
});
export default function settings(state = initState, action) {
const { type, payload } = action;
switch (type) {
case LOGOUT:
return initState;
case GET_SETTINGS:
return state.set('isFetching', true);
case GET_SETTINGS_SUCCEEDED:
return state.set('data', fromJS(payload)).set('isFetching', false);
case PUT_SETTINGS_SUCCEEDED:
return state.merge({ data: payload });
case GET_SETTINGS_FAILED:
return state.set('isFetching', false).set('isError', true);
default:
return state;
}
}
state = {
firstName: '',
lastName: '',
sex: '',
addressLine1: '',
addressLine2: '',
country: '',
zipIndex: '',
errors: {},
};
state = computeDerivedStateOnProps(this.props);
{
target: {
name,
value,
},
}
<DatePicker name="date" value={date} />
handleCheckboxChange = e => {
const checkboxes = xor(this.state.checkboxes, [e.target.value]);
this.setState({ checkboxes });
}
Придется добавить в проект react-router. Читаете при загрузке страницы query параметры и передаете в запрос. По клику на пагинатор обновляете url и через методы жизненного цикла отправляете запрос.