React 路由傳參方法

在寫react-router-dom 的demo時,需要將商品信息傳遞給子路由組件底瓣,即將Products組件的商品信息傳給Product組件進行渲染厅贪。

Products路由組件結(jié)構(gòu)如下圖

import React from 'react'

import {
   Link,
   Route
} from 'react-router-dom'
import Product from './Product'


const Products = (({match}) => {

// 需要將下表數(shù)據(jù)傳給Product組件
const productsData = [
    {id:1,name:'iPhone',price:500,status:'stocked'},
    {id:2,name:'MiPhone',price:400,status:'stocked'},
    {id:3,name:'SumSung',price:300,status:'unstocked'}
]

const linkList = productsData.map((product) =>
        <li key={product.id}>
            <Link to={`${match.url}/${product.id}`}>
                {product.name}
            </Link>
        </li>
    )

return (
    <div className="products">
        {console.log('Products-match')}
        {console.log(match)}
        <ul>
            {linkList}
        </ul>
        
        {/*將Products路由的數(shù)據(jù)全部傳給Product路由組件*/}
        <Route path={`${match.url}/:productId`} render={(props) =>(<Product data={productsData} {...props} />) } />
        <Route exact path={match.url} render={() => <h2>select a product please!</h2>} />
    </div>
  )
})

export default Products

這里要將productsData傳遞給Product路由組件中羞福,方法:render里面渲染時 直接返回 Product組件 并且將Products的數(shù)據(jù)傳遞給子路由組件幻碱,這里使用的時ES6的擴展運算符{...props},如果不具體傳值(比如這里的 data={productsData})关带,props里面沒有productsData侥涵。

<Route 
            path={`${match.url}/:productId`} 
            render={(props) =>(<Product data={productsData} {...props} />) } 
        />

Product組件結(jié)構(gòu)如下

import React from 'react'

const Product = ((props) => {
var product = props.data.find(p => p.id.toString() === props.match.params.productId)
var str;
if(product){
    str =   <div className="details">
        <h3>{product.name}</h3>
        <h3>{product.price}</h3>
        <h3>{product.status}</h3>
    </div> 
} else {
    str = <h3>No exiting!</h3>
}
return (
    <div className="product">
        {console.log('Product-props:')}
        {console.log(props)}
        {str}
    </div>
)
})

export default Product

Products傳給子路由組件Productprops的信息如下:

Props信息
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宋雏,隨后出現(xiàn)的幾起案子芜飘,更是在濱河造成了極大的恐慌,老刑警劉巖好芭,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燃箭,死亡現(xiàn)場離奇詭異,居然都是意外死亡舍败,警方通過查閱死者的電腦和手機招狸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邻薯,“玉大人裙戏,你說我怎么就攤上這事〔薰睿” “怎么了累榜?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我壹罚,道長葛作,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任猖凛,我火速辦了婚禮赂蠢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辨泳。我一直安慰自己虱岂,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布菠红。 她就那樣靜靜地躺著第岖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪试溯。 梳的紋絲不亂的頭發(fā)上蔑滓,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音耍共,去河邊找鬼烫饼。 笑死,一個胖子當著我的面吹牛试读,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荠耽,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钩骇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铝量?” 一聲冷哼從身側(cè)響起倘屹,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慢叨,沒想到半個月后纽匙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡拍谐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年烛缔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轩拨。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡践瓷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亡蓉,到底是詐尸還是另有隱情晕翠,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布砍濒,位于F島的核電站淋肾,受9級特大地震影響硫麻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜樊卓,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一拿愧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧简识,春花似錦赶掖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颈走,卻和暖如春膳灶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背立由。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工轧钓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锐膜。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓毕箍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親道盏。 傳聞我的和親對象是個殘疾皇子而柑,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 作為一個合格的開發(fā)者,不要只滿足于編寫了可以運行的代碼荷逞。而要了解代碼背后的工作原理媒咳;不要只滿足于自己的程序...
    六個周閱讀 8,443評論 1 33
  • 函數(shù)是面向過程的,函數(shù)的調(diào)用不需要主體种远,而方法是屬于對象的涩澡,調(diào)用方法需要一個主體-即對象。 npm install...
    Gukson666閱讀 467評論 0 3
  • HTML模版 之后出現(xiàn)的React代碼嵌套入模版中坠敷。 1. Hello world 這段代碼將一個一級標題插入到指...
    ryanho84閱讀 6,232評論 0 9
  • 本文將開始詳細分析如何搭建一個React應(yīng)用架構(gòu)妙同。 一. 前言 現(xiàn)在已經(jīng)有很多腳手架工具,如create-reac...
    字節(jié)跳動技術(shù)團隊閱讀 4,326評論 1 23
  • 中午應(yīng)朋友邀約出去玩,就沒有在留在家里準備晚餐弄抬,平時因自己沒有上班茎辐,所以家里面的很多事情都是由我來做的。由其是做飯...
    水墨無痕1閱讀 286評論 1 0