Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.05.2024, 14:37
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

чуть подправил код
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;

Последний раз редактировалось riaron86, 30.05.2024 в 14:45.
Ответить с цитированием
  #12 (permalink)  
Старый 30.05.2024, 15:50
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

не получилось вот код

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

Последний раз редактировалось riaron86, 30.05.2024 в 15:53.
Ответить с цитированием
  #13 (permalink)  
Старый 30.05.2024, 16:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от riaron86
не получилось
Следи за руками (с)

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))
Ответить с цитированием
  #14 (permalink)  
Старый 30.05.2024, 17:27
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

я хотел в объекте задать все чекбоксы и одном циклом вывести все в фасет меню
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 красным. еще вопрос цикл у меня правильный?

Последний раз редактировалось riaron86, 30.05.2024 в 17:30.
Ответить с цитированием
  #15 (permalink)  
Старый 30.05.2024, 18:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от riaron86
Но при добавлении Ram Rom phpstorm закрасил объект prop красным.
Так там у тебя проблема с синтаксисом...

Сообщение от riaron86
еще вопрос цикл у меня правильный?
У тебя данные организованы не верно.

Если цикл выводит, что тебе нужно - значит он правильный.
Ответить с цитированием
  #16 (permalink)  
Старый 07.06.2024, 17:41
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

компонент ползунок не видит значений при проверке в компоненте 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;

Последний раз редактировалось riaron86, 09.06.2024 в 17:45.
Ответить с цитированием
  #17 (permalink)  
Старый 09.06.2024, 17:49
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

А сам массив porp.push({start1:2000,start2:7000,name: "Ползунок ",minr:0,maxr:10000})
Ответить с цитированием
  #18 (permalink)  
Старый 13.06.2024, 20:04
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

Не работает функция unique для фильтрации массивов
Ответить с цитированием
  #19 (permalink)  
Старый 13.06.2024, 22:01
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

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;
Ответить с цитированием
  #20 (permalink)  
Старый 13.06.2024, 23:38
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

riaron86, вы суда просто какие-то фрагменты кода постите?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
innerHTML для TR в InternetExplorer не работает? Непонятливый Элементы интерфейса 3 15.10.2012 17:14
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41