react.js не работает рекурсивка
выводит пустой экран
import React,{useState,useRef,useEffect} from 'react';
function Polzunok() {
const pstart= useRef(1);
const ppend= useRef(15000);
const [pstartValue, setPstartValue] = useState(1);
const [ppendValue, setPpendValue] = useState(15000);
const [lastActive, setLastActive] = useState(0);
function checkError( a, b, c){
if(c==1){
if(a>b){
a=b-100;
}else if(a<b){
console.log("this a < b");
}
}else if(c==2){
if(a>b){
b=a+100;
}else if(a<b){
console.log("a < this b");
}
}else{
console.log("else");
}
}
useEffect(() => {
pstart.current.addEventListener('change', e => {
setLastActive(1);
setPstartValue(e.target.value);
})
ppend.current.addEventListener('change', e => {
setLastActive(2);
setPpendValue(e.target.value);
})
lastActive.addEventListener('change',checkError( pstartValue, ppendValue,lastActive));
}, []);
return (
<div className="container">
<h5 className="polzName">Название</h5><br/>
<div className="slider"></div>
<div>
<input type="range" ref={pstart} className="pp" min="0" max="16000"/>
<input type="range" ref={ppend} className="pp" min="0" max="16000"/>
</div>
<div><p>"start" {pstartValue} "end" {ppendValue}<br/>"lastActive":{lastActive}</p></div>
</div>
);
}
export default Polzunok;
|
Цитата:
Цитата:
undefinedи именно это запишется в обработчик. Цитата:
Может до элемента Polzunok даже дело не доходит. P.S. И это не Node.JS... |
админ подскажи где по реакту писать?
|
и еще здесь
import React, {useState} from 'react';
import Slider from 'react-slider';
function Polzunok() {
const MIN= 1200;
const MAX= 13000;
const [values, setValues] = useState([MIN,MAX]);
return (
<div className="container">
<h5 className="polzName">Название</h5><br/>
<div className="slider"></div>
<div>
<Slider className="slider" onCange={setValues} value={values} min={MIN} max={MAX}/>
</div>
</div>
);
}
export default Polzunok;
ползунки не двигаются вот css
/*polz*/
.slider {
position: relative;
width: 100%;
border-radius: 3px;
height: 2px;
background-color: darkgrey;
}
.slider .progress{
left:25%;
right:25%;
background-color: #61b9cf;
position: absolute;
}
div.track{
background-color: #61b9cf;
border: 1px solid #61b9cf;
padding:2px;
margin: 2px;
}
div.thumb{
background-color: white;
height: 10px;
width: 10px;
border:1px solid gold;
}
div.thumb:hover{
cursor: pointer;
}
div.thumb:active{
border:1px solid black;
cursor: pointer;
}
|
riaron86, в 14й строке точно onCange, а не onChange?
|
нашел пример на js обычном отсюда http://www.codingnepalweb.com/price-range-slider-html-css-javascript/[/url]
перевожу его на react если не сложно подскажите какие ошибки
import React,{useState,useRef} from 'react';
function Polzunok() {
const rangeMin=useRef();
const rangeMax=useRef();
const usualMin=useRef();
const usualMax=useRef();
const rangeq=useRef();
const priceGap = 1000;
const [minPriceI,setMinPriceI]=useState();
const [maxPriceI,setMaxPriceI]=useState();
const [minPriceR,setMinPriceR]=useState();
const [maxPriceR,setMaxPriceR]=useState();
usualMin.addEventListener("input", e =>{
setMinPriceI(parseInt(usualMin.current.value));
setMaxPriceI(parseInt(usualMax.current.value));
if(( maxPriceI- minPriceI >= priceGap) && usualMax.current.value<= rangeMax.max){
if(e.target.className === "input-min"){
rangeMin.value = minPriceI;
rangeq.style.left = ((minPriceI / rangeMin.max) * 100) + "%";
}
}
});
usualMax.addEventListener("input", e =>{
setMinPriceI(parseInt(usualMin.current.value));
setMaxPriceI(parseInt(usualMax.current.value));
if((maxPriceI - minPriceI >= priceGap) && maxPriceI <= rangeMax.max){
if(e.target.className === "input-max"){
rangeMax.value = maxPriceI ;
rangeq.style.right = 100 - (maxPriceI / rangeMax.max) * 100 + "%";
}
}
});
rangeMin.addEventListener("input", e =>{
setMinPriceR (parseInt(rangeMin.current.value));
setMinPriceR(parseInt(rangeMax.current.value));
if((maxPriceR - minPriceR) < priceGap){
if(e.target.className === "range-min"){
rangeMin.value = minPriceR - priceGap
}else{
rangeMax.value = minPriceR + priceGap;
}
}else{
usualMin.value = 2500;
usualMax.value = 7500;
rangeq.style.left = ((2500 / rangeMin.max) * 100) + "%";
rangeq.style.right = 100 - (rangeMax / rangeMax.max) * 100 + "%";
}
});
rangeMax.addEventListener("input", e =>{
setMinPriceR (parseInt(rangeMin.current.value));
setMinPriceR(parseInt(rangeMax.current.value));
if((maxPriceR - minPriceR) < priceGap){
if(e.target.className === "range-max"){
rangeMax.value = minPriceR + priceGap;
}
}else{
usualMin.value = 2500;
usualMax.value = 7500;
rangeq.style.left = ((2500 / rangeMin.max) * 100) + "%";
rangeq.style.right = 100 - (rangeMax / rangeMax.max) * 100 + "%";
}
});
return (
<div className="dbody">
<div className="wrapper">
<header>
<h2>Price Range</h2>
<p>Use slider or enter min and max price</p>
</header>
<div className="price-input">
<div className="field">
<span>Min</span>
<input type="number" ref={usualMin} className="input-min" value="2500"/>
</div>
<div className="separator">-</div>
<div className="field">
<span>Max</span>
<input type="number" ref={usualMax} className="input-max" value="7500"/>
</div>
</div>
<div className="slider">
<div className="progress" ref={rangeq}></div>
</div>
<div className="range-input">
<input type="range" className="range-min" ref={rangeMin}min="0" max="10000" value="2500" step="100"/>
<input type="range" className="range-max" ref={rangeMin} min="0" max="10000" value="7500" step="100"/>
</div>
</div>
</div>
);
}
export default Polzunok;
|
riaron86, у вас на каждый рендер компонента будут навешиваться новые слушатели на каждый из инпутов.
Зачем вам ref'ы, если у input'ов есть onChange prop? Хотите контролируемые input'ы - https://react.dev/reference/react-do...state-variable |
спасибо заработало
|
есть еще вопрос насчет useContext
есть объект как в дочернем элементе его перебрать, как в php foreach,
import React,{createContext} from 'react';
import Navbar from "./components/Navbar";
import LeftMenu from "./components/LeftMenu";
import {AuthContext} from './context';
function App() {
const prop= {
checkboxi:
{
named:'Android',
mname:'Android'
},
polzunok:
{
name:"Цена",
start1:2000,
start2:7000,
minr:0,
maxr:10000
}};
return (
<div className="App">
<AuthContext.Provider value={prop}>
<Navbar/>
<LeftMenu/>
</AuthContext.Provider>
</div>
);
}
export default App;
import React, {useContext} from 'react';
import {AuthContext} from "../../context/index.js";
function Checkbox() {
const prop=useContext(AuthContext);
return (
<div>
<ul>
{prop.checkboxi.map(prop.checkboxi.named => (
<li>{prop.checkboxi.named}
))}</li>
</ul>
</div>
);
}
export default Checkbox;
|
Цитата:
const prop= {
checkboxi: {
named:'Android',
mname:'Android'
},
polzunok: {
name:"Цена",
start1:2000,
start2:7000,
minr:0,
maxr:10000
}
};
Object.entries(prop.checkboxi).forEach(([k, v]) => console.log(k, v))
|
чуть подправил код
const prop= { checkboxi: { OS: {id:1,mname:'android',named:'Android'}, },
import React, {useContext, useState} from 'react';
import {AuthContext} from "../../context/index.js";
function Checkbox() {
let k;
const v=[];
const prop=useContext(AuthContext);
const [check,setCheck]=useState();
setCheck(prop.checkboxi.forEach(([k, v]) => (k:v)
));
return (
<div>
<ul>
<li>{check}</li>
</ul>
</div>
);
}
export default Checkbox;
|
не получилось вот код
const prop= { checkboxi: { OS: {id:1,mname:'android',named:'Android'}, }, polzunok: { id:1, name:"Цена", start1:2000, start2:7000, minr:0, maxr:10000 }};
import React, {useContext, useState} from 'react';
import {AuthContext} from "../../context/index.js";
function Checkbox() {
const m= {};
const prop=useContext(AuthContext);
prop.checkboxi.forEach(([k, v]) => m[k]= {mname:v.mname,named:v.named});
return (
<div>
<ul>
<li>{m}</li>
</ul>
</div>
);
}
export default Checkbox;
ругается 3 раза prop.checkboxi.forEach is not a function |
Цитата:
const prop = {
checkboxi: {
OS: {id:1,mname:'android',named:'Android'},
},
polzunok: {
id:1,
name:"Цена",
start1:2000,
start2:7000,
minr:0,
maxr:10000
}
};
Object.entries(prop.checkboxi.OS).forEach(([k, v]) => console.log(k, v))
|
я хотел в объекте задать все чекбоксы и одном циклом вывести все в фасет меню
const prop= { checkboxi: { OS: {id:1,mname:'android',named:'Android'}, RAM:{ {id:1,mname: '6gb',named: '6Gb'}, {id:1,mname: '4gb',named: '4Gb'}, }, ROM: {id:1,mname: '64gb',named: '64Gb'}, }, polzunok: { id:1, name:"Цена", start1:2000, start2:7000, minr:0, maxr:10000 }};
import React, {useContext} from 'react';
import {AuthContext} from "../../context/index.js";
function Checkbox() {
const prop=useContext(AuthContext);
Object.entries(prop.checkboxi).forEach(([k, v]) =>Object.entries(prop.checkboxi.k).forEach(([j,l])=>console.log(k,j,l)) );
return (
<div>
<ul>
<li></li>
</ul>
</div>
);
}
export default Checkbox;
Но при добавлении Ram Rom phpstorm закрасил объект prop красным. еще вопрос цикл у меня правильный? |
Цитата:
Цитата:
Если цикл выводит, что тебе нужно - значит он правильный. |
компонент ползунок не видит значений при проверке в компоненте leftmenu console.log(prop.polzunok.[0].maxr) к примеру выводит без ошибок)
import React,{useContext} from 'react';
import {AuthContext} from "../context/index.js";
import Polzunok from "./elements/Polzunok";
import Checkbox from "./elements/Checkbox";
function LeftMenu() {
const prop=useContext(AuthContext);
console.log(prop.polzunok[0].maxr)
return (
<div className="LeftMenu">
<div className="polzun">
<Polzunok polz={prop.polzunok[0]}/>
</div>
</div>
);
}
//
export default LeftMenu;
import React,{useState,useRef,useEffect} from 'react';
import css from '../../css/components/Polzunok.css';
function Polzunok(polz) {
const p=polz;
const rangeq = useRef();
const [inputMin,setInputMin]=useState(p.start1);
const [inputMax,setInputMax]=useState(p.start2);
const priceGap = 1000;
useEffect(() => {
let minPrice = parseInt(inputMin),
maxPrice = parseInt(inputMax);
if((maxPrice - minPrice >= priceGap) && maxPrice <= p.maxr){
setInputMin(minPrice) ;
}else{
setInputMax(maxPrice);
rangeq.right = 100 - (maxPrice / p.maxr) * 100 + "%";
}
}, [inputMin]);
useEffect(() => {
let minPrice = parseInt(inputMin),
maxPrice = parseInt(inputMax);
if((maxPrice - minPrice >= priceGap) && maxPrice <= p.maxr){
setInputMin(maxPrice);
}else{
setInputMax(maxPrice);
rangeq.current.style.right = 100 - (maxPrice / p.maxr) * 100 + "%";
}
}, [inputMax]);
useEffect(() => {
let minVal = parseInt(inputMin),
maxVal = parseInt(inputMax);;
if((maxVal - minVal) < priceGap){
setInputMin(maxVal - priceGap);
}else{
setInputMin(minVal);
setInputMax(maxVal);
rangeq.current.style.left = ((minVal / p.maxr) * 100) + "%";
rangeq.current.style.right = 100 - (maxVal / p.maxr) * 100 + "%";
}
}, [inputMin]);
useEffect(() => {
let minVal = parseInt(inputMin),
maxVal = parseInt(inputMax);
if((maxVal - minVal) < priceGap){
setInputMax(minVal + priceGap);
}else{
setInputMin(minVal);
setInputMax(maxVal);
rangeq.current.style.left = ((minVal / p.maxr) * 100) + "%";
rangeq.current.style.right = 100 - (maxVal / p.maxr) * 100 + "%";
}
}, [inputMax]);
return (
<div className="polzunok">
<h4>{p.name}</h4>
<div className="slider">
<div className="progress" ref={rangeq}></div>
</div>
<div className="range-input">
<input type="range" className="range-min" value={inputMin} onChange={e => setInputMin(e.target.value)} min={p.minr} max={p.maxr} step="100"/>
<input type="range" className="range-max" value={inputMax} onChange={e => setInputMax(e.target.value)} min={p.minr} max={p.maxr} step="100"/>
</div>
<div className="price-input">
<div className="field">
<span>Min</span>
<input type="number" className="input-min" value={inputMin} onChange={e => setInputMin(e.target.value)}/>
</div>
<div className="separator"></div>
<div className="field">
<span>Max</span>
<input type="number" className="input-max" value={inputMax} onChange={e => setInputMax(e.target.value)}/>
</div>
</div>
</div>
);
}
export default Polzunok;
⁶ |
А сам массив porp.push({start1:2000,start2:7000,name: "Ползунок ",minr:0,maxr:10000})
|
Не работает функция unique для фильтрации массивов
|
checkboxi.push(
{id:1,mname:'os',named:'Андроид',phdr:'Операционная Система'},
{id:2,mname:'os',named:'Айос',phdr:'Операционная Система'},
{id:3,mname:'os',named:'Виндоус',phdr:'Операционная Система'},
{id:4,mname:'ram',named:'2Гб',phdr:'Оперативная Память'},
{id:5,mname:'ram',named:'4Гб',phdr:'Оперативная Память'},
{id:6,mname:'ram',named:'6Гб',phdr:'Оперативная Память'},
{id:7,mname:'ram',named:'8Гб',phdr:'Оперативная Память'},
{id:8,mname:'ram',named:'12Гб',phdr:'Оперативная Память'},
{id:9,mname:'rom',named:'32Гб',phdr:'Память'},
{id:10,mname:'rom',named:'64Гб',phdr:'Память'},
{id:11,mname:'rom',named:'128Гб',phdr:'Память'},
{id:12,mname:'rom',named:'256Гб',phdr:'Память'},
{id:13,mname:'diagonal',named:'5.8',phdr:'Диагональ'},
{id:13,mname:'diagonal',named:'6.2',phdr:'Диагональ'},
{id:13,mname:'diagonal',named:'6.4',phdr:'Диагональ'},
{id:13,mname:'diagonal',named:'6.6',phdr:'Диагональ'},
{id:13,mname:'dpi',named:'1280 × 720',phdr:'Разрешение'},
{id:13,mname:'dpi',named:'1920 × 1080',phdr:'Разрешение'},
{id:13,mname:'dpi',named:'3840 × 2160',phdr:'Разрешение'},
{id:13,mname:'dpi',named:'7680 × 4320',phdr:'Разрешение'},
{id:13,mname:'dsim',named:'2x SIM',phdr:'Количество Сим Карт'},
{id:13,mname:'dsim',named:'1x SIM',phdr:'Количество Сим Карт'},
)
import React from 'react';
function Checkboxes(check) {
const m=0;
const n='';
const f=[];
const d=[];
Object.entries(check.props.checkboxi).forEach(([k, v])=>f.push(k,v));
f.forEach(function(n,m,d){
if(d.includes(n)){
console.lod('в d уже есть n');
}else{
d.push(n);
console.log(d);
}
});
//console.log(f);
return (
<div>
{}
</div>
);
}
export default Checkboxes;
|
riaron86, вы суда просто какие-то фрагменты кода постите?
|
index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import css from './css/main.css';
import App from './App.js';
const root=ReactDOM.createRoot( document.getElementById('root'));
root.render(
<div style={css}>
<App/>
</div>
);
App.js
import React,{createContext} from 'react';
import Navbar from "./components/Navbar";
import LeftMenu from "./components/LeftMenu";
import {AuthContext} from './context';
function App() {
const prop = [];
const polzunok=[];
const checkboxi=[];
polzunok.push(
{
id: 1,
name: "Цена",
start1: 2000,
start2: 7000,
minr: 0,
maxr: 10000,
},
);
checkboxi.push(
{id:1,mname:'os',named:'Андроид',phdr:'Операционная Система'},
{id:2,mname:'os',named:'Айос',phdr:'Операционная Система'},
{id:3,mname:'os',named:'Виндоус',phdr:'Операционная Система'},
{id:4,mname:'ram',named:'2Гб',phdr:'Оперативная Память'},
{id:5,mname:'ram',named:'4Гб',phdr:'Оперативная Память'},
{id:6,mname:'ram',named:'6Гб',phdr:'Оперативная Память'},
{id:7,mname:'ram',named:'8Гб',phdr:'Оперативная Память'},
{id:8,mname:'ram',named:'12Гб',phdr:'Оперативная Память'},
{id:9,mname:'rom',named:'32Гб',phdr:'Память'},
{id:10,mname:'rom',named:'64Гб',phdr:'Память'},
{id:11,mname:'rom',named:'128Гб',phdr:'Память'},
{id:12,mname:'rom',named:'256Гб',phdr:'Память'},
{id:13,mname:'diagonal',named:'5.8',phdr:'Диагональ'},
{id:13,mname:'diagonal',named:'6.2',phdr:'Диагональ'},
{id:13,mname:'diagonal',named:'6.4',phdr:'Диагональ'},
{id:13,mname:'diagonal',named:'6.6',phdr:'Диагональ'},
{id:13,mname:'dpi',named:'1280 × 720',phdr:'Разрешение'},
{id:13,mname:'dpi',named:'1920 × 1080',phdr:'Разрешение'},
{id:13,mname:'dpi',named:'3840 × 2160',phdr:'Разрешение'},
{id:13,mname:'dpi',named:'7680 × 4320',phdr:'Разрешение'},
{id:13,mname:'dsim',named:'2x SIM',phdr:'Количество Сим Карт'},
{id:13,mname:'dsim',named:'1x SIM',phdr:'Количество Сим Карт'},
)
prop['polzunok']=polzunok;
prop['checkboxi']=checkboxi;
return (
<div className="App">
<AuthContext.Provider value={prop}>
<Navbar/>
<LeftMenu/>
</AuthContext.Provider>
</div>
);
}
export default App;
/context/index.js
import {createContext} from 'react'
export const AuthContext = createContext(null);
/components/LeftMenu.js
import React,{useContext} from 'react';
import {AuthContext} from "../context/index.js";
//import Polzunok from "./elements/Polzunok";
import Checkboxes from "./elements/Checkboxes";
function LeftMenu() {
const propk=useContext(AuthContext);
//console.log(propk);
return (
<div className="LeftMenu">
<div className="polzun">
<Checkboxes props={propk.checkboxi}/>
</div>
</div>
);
}
//
export default LeftMenu;
/components/elements/Checkboxes.js
import React from 'react';
function Checkboxes(check) {
const m=0;
const n='';
const f=[];
const d=[];
Object.entries(check.props).forEach(([k, v])=>f[k]=v);
console.log(f);
//console.log(f);
return (
<div>
{}
</div>
);
}
export default Checkboxes;
нужно получить уникальные значения phdr и по ним группируя вывести в меню checkbox ы |
В вашем index.js вы импортируете css-файл и вставляете его содержимое как значение атрибута style дива. Работает?
В вашем App.js вы каждый раз пересоздаете массив данных для контекста, может стоит вынести эти данные из компонента или вообще использовать хук useReducer? Тут вообще непонятно зачем вам эти данные и что вы собираетесь с ними делать. Там же: инициализировать константу prop с типом array для того, чтобы добавить ему 2 свойства - звучит как глупость. Может стоит использовать тип object? LeftMenu.js: зачем читать значение контекста и прокидывать его значение дочернему компоненту, если дочерний компонент сам может обратиться к контексту? Ключ props для props'ов компонента - звучит мощно. Checkboxes.js: даже не представляю, что вы пытаетесь сделать. Ваш check.props - уже массив, нет смысла для его перебора использовать Object.entries. Попробуйте начать с изучения основ JavaScript, потом почитайте документацию React и через годик у вас все получится. Пытаться решить задачу методом тыка - такое себе, этот топик прямое тому доказательство. |
изображения не показывает в чем ошибка?
Shop.js
import React,{useContext} from 'react';
import {AuthContext} from "../context/index.js";
import Item from "./Item";
import shop from '../css/components/shop.css';
function Shop(props) {
const propk=useContext(AuthContext);
return (
<div className="shop">
{propk.products.map(function (data){
return(
<div className='items'>
<Item key={data.id} model={data.model} prise={data.prise} desc={data.desc} img={data.img}/>
</div>
)
})}
</div>
);
}
export default Shop;
Item.js
import React from 'react';
function Item(props) {
var aimg='';
return (
<div>
{ props.img ? <img className="itemimg" src={props.img} /> : <img className="itemimg" src='./../../public/imgs/emptyimg.jpeg'/>}
<p>Модель:{props.model}</p>
<p>Цена:{props.prise}</p>
<p>Описание:{props.desc}</p>
</div>
);
}
export default Item;
|
Цитата:
|
что вы придрались к контексту он у меня прекрасно работает, просто надо какую то реакт функцию прописать чтобы каатринки показывало и все.
Статично картинки в реакт умею выводить, как динамично вывести весь код нормально показывает и показывает иконку когда указываешь неправильный путь к карнтинке |
Цитата:
|
Цитата:
Цитата:
|
обновил App.js
import React,{createContext} from 'react';
import Navbar from "./components/Navbar";
import LeftMenu from "./components/LeftMenu";
import {AuthContext} from './context';
import Shop from "./pages/Shop.js";
function App() {
const prop = [];
const polzunok=[];
const checkboxi=[];
const products=[];
polzunok.push(
{
id: 1,
name: "Цена",
start1: 2000,
start2: 7000,
minr: 0,
maxr: 10000,
},
);
checkboxi.push(
{id:1,mname:'os1',named:'Андроид',phdr:'Операционная Система'},
{id:2,mname:'os2',named:'Айос',phdr:'Операционная Система'},
{id:3,mname:'os3',named:'Виндоус',phdr:'Операционная Система'},
{id:4,mname:'ram1',named:'2Гб',phdr:'Оперативная Память'},
{id:5,mname:'ram2',named:'4Гб',phdr:'Оперативная Память'},
{id:6,mname:'ram3',named:'6Гб',phdr:'Оперативная Память'},
{id:7,mname:'ram4',named:'8Гб',phdr:'Оперативная Память'},
{id:8,mname:'ram5',named:'12Гб',phdr:'Оперативная Память'},
{id:9,mname:'rom1',named:'32Гб',phdr:'Память'},
{id:10,mname:'rom2',named:'64Гб',phdr:'Память'},
{id:11,mname:'rom3',named:'128Гб',phdr:'Память'},
{id:12,mname:'rom4',named:'256Гб',phdr:'Память'},
{id:13,mname:'diagonal1',named:'5.8',phdr:'Диагональ'},
{id:14,mname:'diagonal2',named:'6.2',phdr:'Диагональ'},
{id:15,mname:'diagonal3',named:'6.4',phdr:'Диагональ'},
{id:16,mname:'diagonal4',named:'6.6',phdr:'Диагональ'},
{id:17,mname:'dpi1',named:'1280 × 720',phdr:'Разрешение'},
{id:18,mname:'dpi2',named:'1920 × 1080',phdr:'Разрешение'},
{id:19,mname:'dpi3',named:'3840 × 2160',phdr:'Разрешение'},
{id:20,mname:'dpi4',named:'2280×1080',phdr:'Разрешение'},
{id:21,mname:'dsim1',named:'2x SIM',phdr:'Количество Сим Карт'},
{id:22,mname:'dsim2',named:'1x SIM',phdr:'Количество Сим Карт'},
{id:23,mname:'samsung',named:'Samsung',phdr:'Бренд'},
{id:24,mname:'apple',named:'Apple',phdr:'Бренд'},
{id:25,mname:'huawei',named:'Huawei',phdr:'Бренд'},
{id:26,mname:'xiaomi',named:'Xiaomi',phdr:'Бренд'},
{id:27,mname:'meizu',named:'Meizu',phdr:'Бренд'},
{id:28,mname:'asus',named:'Asus',phdr:'Бренд'},
{id:29,mname:'alcatel',named:'Alcatel',phdr:'Бренд'},
{id:30,mname:'lenovo',named:'Lenovo',phdr:'Бренд'},
)
var checkbox1=[1,8,12,15,19,22,23];
var checkbox2=[1,6,11,13,20,22,26];
var checkbox3=[2,6,11,14,20,22,24];
var checkbox4=[1,7,12,16,20,22,25];
var checkbox5=[1,7,12,16,19,22,27];
var checkbox6=[1,8,12,16,20,22,28];
var checkbox7=[3,5,10,13,18,21,29];
var checkbox8=[1,4,9,13,17,22,30];
products.push(
{id:1,img:'/../public/imgs/sgs20.jpg', model:"s20",prise:20000,desc:"Мощный и надежный",checkboxid:checkbox1},
{id:2,img:null, model:"Mi Play",prise:8414,desc:"Функциональный",checkboxid:checkbox2},
{id:3,img:null, model:"iPhone 14",prise:75682,desc:"Мощный",checkboxid:checkbox3},
{id:4,img:null, model:"Nova 10 SE",prise:18109,desc:"Красивый",checkboxid:checkbox4},
{id:5,img:null, model:"18s",prise:53099.56,desc:"Цена Качество",checkboxid:checkbox5},
{id:6,img:null, model:"Смартфон ASUS ROG Phone 6D ",prise:53450,desc:"Производительный",checkboxid:checkbox6},
{id:7,img:null, model:"One Touch Idol 4 Pro",prise:17514,desc:"Оптимальный",checkboxid:checkbox7},
{id:8,img:null, model:"A7000",prise:9000,desc:"Доступный",checkboxid:checkbox8},
)
prop['polzunok']=polzunok;
prop['checkboxi']=checkboxi;
prop['products']=products;
return (
<div className="App">
<AuthContext.Provider value={prop}>
<Navbar/>
<LeftMenu/>
<Shop/>
</AuthContext.Provider>
</div>
);
}
export default App;
|
| Часовой пояс GMT +3, время: 04:35. |