var a = [2,1];
var b = [9,5];
var mergeArray = function() {
var a, b, array; // изначально undefined
// поскольку в вызове функции ты не передал значения, чтобы присвоить их переменным a и b, они так и остаются undefined
// здесь ты пытаешься вызвать метод .concat() у undefined, должна вылетать ошибка по этому поводу
// ты ожидаешь что a и b будут взяты из глобального пространства, но этого не произойдёт, поскольку здесь внутри функции (то есть в локальном пространстве) ты объявил переменные c точно такими же идентификаторами, поэтому они "перетерут" глобальных "тёзок".
array = a.concat(b); // undefined.concat(undefined);
};
mergeArray();
.concat()
"на вооружении") const data = "abcdff"
const list = data.split('').reduce((x, y) =>
Array.isArray(x) ? x.concat(x[x.length - 1][1] + y): [x + y]
)
console.log('list', list); // ["ab", "bc", "cd", "df", "ff"]
assets
и потом после сборки туда же их и отправляешь. как-то это странно. возможно лучше создать папку/src/images
, а в конфиге{
test: /\.(jpg|jpeg|gif|png)$/,
include: path.resolve(__dirname, "src/images"),
loader:'url-loader?limit=1024&name=images/[name].[ext]'
}
body {
background: url(../../assets/back.jpg);
background-size: cover;
font-family: 'Open Sans', sans-serif;
}
function handleClickFor(index, text) {
a[index].addEventListener('click', function() {
dec2(text, text);
summCounter1();
callsPerDay();
callsOverall();
});
}
Array(3).fill().forEach(function(_, i) {
handleClickFor(i, 'count' + (i + 1) )
})
@media only screen and (max-width: 659px) {
.sct_kontakt {
flex-direction: column-reverse;
}
}
this.props.data
определён как default props(не будет меняться), но в большинстве случаев будет(идёт из родительского state либо из глобального хранилища, то есть store). this.props.data
обновится, локальный state останется прежним. Придётся дергать componentWillRecieveProps
. handle = {this.test}
. Пробелов быть не должно.export default class Board extends React.Component {
test = () => {
console.log(this)
}
render(){
const temp = this.props.data.map((item, index) =>
<Task data={item} key={index} handle={this.test} />
)
return <div className="board">{temp}</div>
}
}
const items = [
{name:'Отвертка',price:'150', quantity: 100},
{name:'Ключ',price:'100', quantity: 200},
{name:'Зубило',price:'180', quantity: 500},
{name:'Напильник',price:'200', quantity: 1000},
{name:'Молоток',price:'500', quantity: 250}
];
function getDiscount(x) {
if(x < 10) return 5;
if(x > 10 && x < 50) return 7;
if(x > 50 && x < 100) return 10;
if(x > 100) return 15;
}
function getCustomerBenefit(item) {
const benefit = item.quantity * 0.01 * item.price * getDiscount(item.quantity);
console.log('money you can save due to discount', benefit);
return benefit;
}
function calculateTotalPayment(item) {
const beforeDiscount = item.quantity * item.price;
const totalPayment = beforeDiscount - getCustomerBenefit(item);
console.log('beforeDiscount', beforeDiscount);
console.log('total payment(discount included)', totalPayment);
return totalPayment;
}
calculateTotalPayment(items[4]);
rem
, а всё остальное внутри - в em
.rem
чтобы задать размер шрифта компонента. Размеры дочерних элементов компонента должны зависеть от размера шрифта самого компонента, а не корневого элемента, поэтому внутри компонента всё вem
. font-size
у класса .card__card_big
loadingScreen()
неявно возвращает промис, надо дождаться его выполненияasync function game() {
await loadingScreen()
console.log('screen is loaded!')
}
// Register server-side rendering middleware
app.get('*', (req, res) => {
if (__DEV__) {
webpackIsomorphicTools.refresh();
}
const store = configureStore();
// If __DISABLE_SSR__ = true, disable server side rendering
if (__DISABLE_SSR__) {
res.send(renderHtmlPage(store));
return;
}
const memoryHistory = createMemoryHistory(req.url);
const history = syncHistoryWithStore(memoryHistory, store, {
selectLocationState: state => state.get('routing').toJS(),
});
// eslint-disable-next-line max-len
match({history: memoryHistory, routes, location: req.url }, (error, redirectLocation, renderProps) => {
if (error) {
res.status(500).send(error.message);
} else if (redirectLocation) {
res.redirect(302, redirectLocation.pathname + redirectLocation.search);
} else if (!renderProps) {
res.sendStatus(404);
} else {
// Dispatch the initial action of each container first
const promises = renderProps.components
.filter(component => component.fetchData)
.map(component => component.fetchData(store.dispatch, renderProps.params));
// Then render the routes
Promise.all(promises)
.then(() => {
// Using the enhanced history of react-redux-router to instead of the 'memoryHistory'
const props = Object.assign({}, renderProps, { history });
const content = renderToString(
<Provider store={store}>
<RouterContext {...props} />
</Provider>
);
res.status(200).send(renderHtmlPage(store, content));
});
}
});
});
class UsersPage extends React.Component {
static async fetchData(url) {
try {
const res = await axios.get(url);
const users = res.data
} catch(err) {
console.error(err.message);
}
}
componentDidMount() {
this.fetchData(url);
}
render() {
return (
// whatever
);
}
}