Pass Data between React Components

min read

Day 27 #100DaysOfCode #React

Làm thế nào để chuyển dữ liệu giửa các Component trong React. Là một vấn đề rất quan trọng, nên nay mình tìm hiểu sơ sơ qua về vấn đề này, để hiểu về nó

Đầu tiên mình cần tạo một project nhỏ, mình chạy câu lệnh dưới đây: 

npx create-react-app name_project

//State the development server
cd name_project
npm start

//Build project 
# npm run build 

Mọi người có thể xem lại bài viết : Getting Started With React

Sau khi tạo xong bạn hãy tạo file theo đường dẫn sau:

+ /src/components/PassDataParentChild/Parent.js : viết code cho Component Parent

import React, { useState } from "react";
import Child from "./Child";

const Parent = () => {
  const [name, setName] = useState("Hokage Hoa");
  const products = [
    {
      id: 1,
      title: "Cafe"
    },
    {
      id: 2,
      title: "Coca"
    }
  ];

  // const [products, setProducts] = useState(products);
  const changeName = (name) => {
    setName(name);
  };
  return (
    <>
      <h2>Parent</h2>
      <Child name={name} changeName={changeName} products={products} />
    </>
  );
};
export default Parent;

Đoạn code bên trên mình có gửi data từ component Parent đến component Child

<Child name={name} changeName={changeName} products={products} />

Okay, giờ tiếp theo ta hãy tạo component Child để nhận data từ component Parent thôi

+ /src/components/PassDataParentChild/Child.js

import React, { useEffect } from "react";

const Child = ({ name, changeName, products }) => {
  useEffect(() => {
    console.log(products);
  }, []);
  return (
    <>
      <h2>Child</h2>
      <span>Name: {name}</span>
      <br />
      <br />
      <button onClick={() => changeName("Hokage Skipperhoa")}>
        Change Name
      </button>
      <p>---------------------------------------------</p>
      <label>List products</label>
      <ul>
        {products.map((item, key) => (
          <li key={key}>{item.title}</li>
        ))}
      </ul>
    </>
  );
};
export default Child;

Code trên mình cần khai báo nhận biến từ component Parent gửi qua như sau : 

const Child = ({ name, changeName, products }) => {
  
};
export default Child;

Ta có thể sử dụng các biến trên một cách bình thường, hoặc viết sự kiện onClick gửi dữ liệu từ component Child  đến component Parent, để cập nhật lại giá trị biến name ở component Parent

 <button onClick={() => changeName("Hokage Skipperhoa")}>
        Change Name
      </button>

Okay, về việc cấu hình gửi data từ Child->Parent, và từ Child->Parent đã xong, giờ ta hãy gọi component Parent trong file App.js

+ src/App.js

import React from "react";
import Parent from "./components/PassDataParentChild/Parent";
const App = () => {
  return (
    <>
      <Parent />
    </>
  );
};
export default App;

Như bên trên cũng chưa phải là cách duy nhất hoặc hay, từ từ mình tìm hiểu thêm và chia sẻ với mọi người tiếp.

x

Ủng hộ tôi bằng cách click vào quảng cáo. Để tôi có kinh phí tiếp tục phát triển Website!(Support me by clicking on the ad. Let me have the money to continue developing the Website!)