Javascript.RU

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

react передача данных дочернему элементу
Не выводит значения но и ошибок не выдает
Вот родительский:
import React from 'react';
import Item from './item';

function ItemsList() {
  const arrayse={'id':1,'description':'desc'}
  return (
    <Item arrayse={arrayse}/>
  );
}

export default ItemsList;

Вот дочерний
import React from 'react';


function Item(arrayse) {
  return (
    <div>
      <p>ID:{arrayse.id}</p>
      <p>Desc:
      {arrayse.description}
      </p>
    </div>
  );
}

export default Item;
Ответить с цитированием
  #2 (permalink)  
Старый 07.05.2023, 16:17
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

Выставляю полное приложение измененное
index.js
import React, {createContext} from 'react';
import ReactDOM from 'react-dom';
import App from './App';


export const Context = createContext(null)
const arrayse={'id':1,'description':'desc'};
ReactDOM.render(
    <Context.Provider value={{
        arrayse:arrayse
    }}>
        <App />
    </Context.Provider>,
    document.getElementById('root')
);


app.js
import React from 'react';
import Shop from './pages/Shop'
function App() {
  return (
    <Shop/>

  )
}
export default App;

Shop.js
import React from 'react';
import ItemsList from '../components/itemsList';
function Shop() {
  return (
    <ItemsList/>
  );
}
export default Shop;

itemsList
import React,{useContext} from 'react';
import Item from './item';
import {Context} from "../index";
function ItemsList() {
  const {arrayse} = useContext(Context)
  return (
    <Item arrayse={arrayse}/>
  );
}

export default ItemsList;

item остается неизменным
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2023, 18:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от riaron86
Не выводит значения
С пропсами ты не умеешь еще работать...

Вот рабочий вариант

import React,{createContext, useContext} from 'react';
import ReactDOM from 'react-dom/client';
 
const Context = createContext(null)
const arrayse={'id':1,'description':'desc'}
//
function App() {
	return (
		<Shop/>
	)
}
//
function Shop() {
	return (
		<ItemsList/>
	);
}
//
function ItemsList() {
	const {arrayse} = useContext(Context)
	return (
		<Item arrayse={arrayse}/>
	);
}
//
function Item({arrayse}) {
	return (
		<div>
			<p>ID: {arrayse.id}</p>
			<p>Desc: {arrayse.description}</p>
		</div>
	);
}



const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Context.Provider value={{arrayse:arrayse}}>
		<App />
	</Context.Provider>
);


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

вынес itrem в отдельный файл и добавил в index import Item from '/components/item/';
item не тменял(как в самом первом посте)
Ответить с цитированием
  #5 (permalink)  
Старый 11.05.2023, 12:20
Аспирант
Отправить личное сообщение для riaron86 Посмотреть профиль Найти все сообщения от riaron86
 
Регистрация: 27.11.2021
Сообщений: 76

ERROR in ./src/index.js 7:0-37
Module not found: Error: Can't resolve '/components/item/' in 'C:\react\client\src'
Compiled with problems:
×
ERROR in ./src/index.js 7:0-36
Module not found: Error: You attempted to import /components/item which falls outside of the project src/ directory. Relative imports outside of src/ are not supported.
You can either move it inside src/, or add a symlink to it from project's node_modules/.
Did you mean './/components/item'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (node_modules, C:\react\client\node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.

копирую название components из сообщения в название папки ничего не меняется
а папка находится src

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

Где здесь ошибка?
index.js
src\components\itemsList.js
Line 4:34: 'Context' is not defined no-undef

Search for the keywords to learn more about each error.
import React,{createContext} from 'react';
import ReactDOM from 'react-dom/client';
import ItemsList from "./components/itemsList";

const Context = createContext(null)
const arrayse=[
     {'id':1,'description':'description1'},
     {'id':1,'description':'description1'},
     {'id':1,'description':'description1'},
     {'id':1,'description':'description1'},
     {'id':1,'description':'description1'},
    ];
//
function App() {
    return (
        <Shop/>
    )
}
//

function Shop() {
    return (
        <ItemsList/>
    );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<Context.Provider value={{arrayse:arrayse}}>
        <App />
    </Context.Provider>
);

itemsList.js
import React, {useContext} from 'react';
import Item from './item.js';
function ItemsList()  {
    const {arrayse} = useContext(Context)
    return (
        arrayse.map(array=><Item arrayse={array}/>)

    );
}

export default ItemsList;


item.js
import React from 'react';

function Item ({arrayse}) {
    return (
        <div>

            <h1>id:{arrayse.id}</h1>

            <p>desc: {arrayse.description}</p>

        </div>
    );
}
Ответить с цитированием
  #7 (permalink)  
Старый 11.05.2023, 18:51
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

riaron86, из index'а константа Context не экспортируется, а в itemsList она же не импортируется.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не срабатывает клик по дочернему элементу romveld Элементы интерфейса 1 06.06.2020 14:30
Оптимальная передача данных Aido Node.JS 1 02.05.2020 04:13
Ajax передача большого количества данных diakon AJAX и COMET 3 29.05.2015 13:23
ajax передача данных с setInterval Segol Общие вопросы Javascript 0 07.07.2013 09:36
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00