中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

react子組件怎么向父組件傳值

小億
227
2024-01-08 10:30:00
欄目: 編程語言

在React中,子組件向父組件傳值可以通過兩種方式實現:

  1. 通過回調函數: 父組件可以通過props將一個回調函數傳遞給子組件,子組件可以通過調用這個回調函數并傳遞參數來將值傳遞回父組件。

父組件示例代碼:

import React, { useState } from 'react';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  const [value, setValue] = useState('');

  const handleChildValue = (childValue) => {
    setValue(childValue);
  };

  return (
    <div>
      <ChildComponent onValueChange={handleChildValue} />
      <p>Value from child component: {value}</p>
    </div>
  );
}

export default ParentComponent;

子組件示例代碼:

import React, { useState } from 'react';

function ChildComponent({ onValueChange }) {
  const [inputValue, setInputValue] = useState('');

  const handleChange = (event) => {
    setInputValue(event.target.value);
    onValueChange(event.target.value);
  };

  return (
    <div>
      <input type="text" value={inputValue} onChange={handleChange} />
    </div>
  );
}

export default ChildComponent;

在上面的示例中,子組件ChildComponent接收一個onValueChange的props,它是一個回調函數。當子組件的輸入框的值發生變化時,會調用handleChange函數,將輸入的值傳遞給onValueChange回調函數,從而將值傳遞回父組件。

  1. 使用Context: 父組件可以通過創建一個Context,并將需要傳遞的值放入Context的Provider中,子組件可以通過Context的Consumer來獲取這個值。

父組件示例代碼:

import React, { useState } from 'react';
import { MyContext } from './MyContext';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  const [value, setValue] = useState('');

  return (
    <div>
      <MyContext.Provider value={value}>
        <ChildComponent />
      </MyContext.Provider>
      <p>Value from child component: {value}</p>
    </div>
  );
}

export default ParentComponent;

子組件示例代碼:

import React, { useContext, useState } from 'react';
import { MyContext } from './MyContext';

function ChildComponent() {
  const value = useContext(MyContext);
  const [inputValue, setInputValue] = useState('');

  const handleChange = (event) => {
    setInputValue(event.target.value);
  };

  return (
    <div>
      <input type="text" value={inputValue} onChange={handleChange} />
      <p>Value from parent component: {value}</p>
    </div>
  );
}

export default ChildComponent;

在上面的示例中,父組件ParentComponent創建了一個MyContext,并將value放入MyContext.Provider的value屬性中。子組件ChildComponent通過useContext來獲取MyContext的值,并將其顯示在頁面上。子組件也可以通過inputonChange事件來更新inputValue的狀態值,但這個值只在子組件中存在,并不會傳遞給父組件。

0
平南县| 大埔县| 茌平县| 威信县| 永顺县| 鄂托克前旗| 鄂尔多斯市| 大冶市| 陕西省| 酉阳| 石门县| 新和县| 新竹县| 德兴市| 红安县| 黄冈市| 洞口县| 邵阳市| 肇庆市| 镇赉县| 定结县| 赫章县| 周口市| 喀喇沁旗| 盘山县| 喀喇| 杂多县| 社旗县| 和静县| 安阳市| 尖扎县| 来安县| 正安县| 盖州市| 黎平县| 香河县| 登封市| 遵化市| 凤阳县| 德安县| 德昌县|