React Context 跨層傳遞props

2021-10-07 18:58:34 字數 1773 閱讀 5092

proprs一級一級往下傳,若對中間component無用,則很麻煩+浪費時間;

使用context,將乙個component的props作為全域性props,使用context呼叫即可;

import authcontext from

'../context/auth-context'

;

需要接受傳遞的物件包在authcontext.provider中;

並往authcontext中傳入可分享的props物件——(value=}); 外面的括號代表使用js,裡面的括號代表object;

}>

personslength=

clicked=

/>

:null

}<

/authcontext.provider>

person.js

import authcontext from

'../../../context/auth-context'

;

將要接受props的物件包裹在authcontext.consumer中;

將jsx放入乙個function中——(context)=>接受的props

<

/authcontext.consumer>

cockpit.js

context可傳遞funtion,用於設定button的onclick事件;

>log in

<

/button>

}<

/authcontext.consumer>

react.createcontext({})設定該context的props;

在propvider時將需要變為全域性的props放入其中;

在consumer中呼叫即可;

import react from

'react'

;const authcontext = react.

createcontext(}

);export

default authcontext;

可用this.context——在任何地方呼叫context;

無需使用< authcontext >< authcontext />

static contexttype = authcontext;

componentdidmount()

import react,

from

'react'

;import authcontext from

'../../context/auth-context'

;

使用usercontext();

const authcontext =

usecontext

(authcontext)

; console.

log(authcontext.authenticated)

;

即可在所有地方呼叫context的props;

>log in

<

/button>

react context跨層級傳遞引數

什麼是跨層級傳遞引數?要想用context,先了解一下上篇內容 prop types,因為需要用到這個知識。進入正題 先來看下不跨層級傳遞引數 import react,from react class grandson extends component header class child ex...

跨頁面傳值

預設情況下,點選 button 按鈕後,會回傳到本頁面,但是通過指定 button 的postbackurl 屬性可以把資料提交到其他頁面,如在send.aspx 頁面中有 asp textbox id txtcontent runat server asp textbox asp button i...

react跨頁面跨元件傳值

做需求的時候遇到這樣乙個情況,要跨頁面跨元件進行傳值,兩個頁面並不是父子關係 資料由a頁面傳到b頁面 在src目錄下建立store目錄,並在裡面建立test.js import from redux const defaultstate const store createstore state d...