React-router(8)Link 標籤 to 屬性為物件時(路由資訊傳值)
8、Link 標籤 to 屬性為物件時(路由資訊傳值)
參考 6.routeInfo.js
在元件裡,每個元件的路由資料,都是各自獨立的。
在之前分析中,已知:
- match 屬性的值,儲存的是該 Route 標籤的路由;
- location 屬性的值,其中 url 和 path 不同 Route 元件中,值是相同的;
但【2】並不準確,準確的說,自帶的 hash , search , pathname 這三個屬性的值,是相同的;
假如你在裡面添加了其他資料,那麼結果就有所不同了。
例如 Link 標籤,他有一個屬性 to,可以用於路徑跳轉。
比較常見的是以下這種寫法:
<Link to={`${props.match.url}/`}>子路由</Link>
但是,to 的值,也可以用物件,例如這樣:
<Link to={{
pathname: `${this.props.match.url}/1`,
myState: '這是我自定義的變數'
}}>示例1</Link>
當路由資訊匹配時(參照DEMO):
1、父元件的路由資訊為:
{
"match": {
"path": "/RouteInfo",
"url": "/RouteInfo",
"isExact ": false,
"params": {}
},
"location": {
"pathname": "/RouteInfo/1",
"search": "",
"hash": ""
},
"history": {
"length": 9,
"action": "POP",
"location": {
"pathname": "/RouteInfo/1",
"search": "",
"hash ": ""
}
}
}
2、被傳值的子元件的路由資訊:
{
"match": {
"path": "/RouteInfo/1",
"url": "/RouteInfo/1",
"isExact": true,
"params": {}
},
"location": {
"pathname": "/RouteInfo/1",
"myState": "這是我自定義的變數",
"search": "",
"hash": ""
},
"history": {
"length": 24,
"action": "PUSH",
"location": {
"pathname": "/RouteInfo/1",
"myState": "這是我自定義的變數",
"search": "",
"hash": ""
}
}
}
可以看到,被傳值的子元件的路由資訊,location 會多了一個屬性。
但是請注意,以下幾種情況會導致失去這些資訊:
- 重新整理頁面;
- 訪問更深一層的子元件(因為資訊被更新了);
- 重新整理後,訪問相同的 url。舉例來說,你訪問了該 url,傳值了也收到了,然後重新整理頁面,再點選該 url,是沒有的。原因是相同 url 跳轉;
相關推薦
React-router(8)Link 標籤 to 屬性為物件時(路由資訊傳值)
8、Link 標籤 to 屬性為物件時(路由資訊傳值) 參考 6.routeInfo.js 在元件裡,每個元件的路由資料,都是各自獨立的。 在之前分析中,已知: match 屬性的值,儲存的是該 Route 標籤的路由; location
React 學習筆記 (八)(react-router 4. 頁面傳值)
動態路由傳值 1.配置(根元件載入元件,注意path寫法: /xxx/:id) <Route path='/product/:id' component={RouterProduct}></Route> 2.跳轉(注意寫法:es6 模板字串 鍵盤es
React 16+Redux+React Router 4 Node.Js全棧開發招聘App專案實戰(雲盤下載)
第1章 介紹課程目標和學習內容包括課程概述、課程安排、學習前提、講授方式等方面的介紹,最後演示了整個招聘App的功能,讓同學們對課程專案有一個直觀的瞭解。1-1 課程導學第2章 知識儲備2-1 介紹React開發環境2-2 ES6常用語法2-3 express+mongodb
linux -mongodb 啟動問題(Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : )
-bash-4.1# ./mongo MongoDB shell version v3.4.6 connecting to: mongodb://127.0.0.1:27017 2017-09-20T20:02:14.620+0800 W NETWORK
淺拷貝(在進行當中一個對象的運算時開辟新的空間)
int 構造 nts iostream alt 小寫 釋放 fcm pri 如圖變換,且對於指向同一空間的String進行計數 代碼例如以下: #include <iostream> using namespace std; class Str
lombok使用(給自己看的,只為不要忘記自己用過的技術)
ref targe 添加 res tostring 當我 fin alsa nal 如何使用? 一、1)eclipse使用方法 1. 從項目首頁下載lombok.jar 2. 雙擊lombok.jar, 將其安裝到eclipse中(該項目需要jdk1.6+的環境)
Vue bus的使用(兄弟|非父子組件傳值)-->可以使用一個空的Vue實例作為中央事件總線new Vue()
strong and data 使用 實例 ted 事件總線 col str 1.在main.js中註冊全局的bus Vue.prototype.bus=new Vue(); 2.在組建中使用 子組建使用:this.bus.$emit(‘自定義事件名‘,data)
HTML中在img使得src屬性為php程式(可為JPgraph所產生的影象)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript"> functio
C++建立類物件時(無參)後不加括號與加括號的區別
https://blog.csdn.net/Windgs_YF/article/details/80927058 https://blog.csdn.net/u012750259/article/details/44832769 1、在棧中例項化物件 A a;//例項化物件,會呼叫c
js 當變數值為0,判斷是否為空時(0=='')返回ture的問題
var aa = 0; if(aa==""){ alert("111"); } ------------------------------ var aa = 00; alert(aa==""); 都是返回true。 這是因為0與 ’ ’ 轉換成布林型都是false的。
Nodejs入門基礎(使用express模組通過JSON(GET、POST)提交方式獲取或返回值)
前端通過ajax get或則post方式提交資料到後臺,後臺傳遞資料到前臺互相呼叫getjson.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"
Nuxt 巢狀路由nuxt-child元件(父子頁面元件的傳值)
Nuxt巢狀路由官網上的API詳解:點選連結 看了官網上的api實現了官網的案例你會發現訪問父頁面中只能顯示父頁面中的內容,要想預設的在<nuxt-child>區域顯示一個頁面內容怎麼辦? 自己案例程式碼: pages/parent.vue &
利用arcpy實現arcgis中欄位自動編號(pycharm匯入arcpy站點包,欄位建立、更新與寫值)
一、問題來源 今天看到群裡有一個小夥伴,要實現這樣的一個功能,來看一下他的提問: 問下各位大神,如果圖層裡面有2000個小班,我需要將這2000小班在屬性表裡面編號依次為1 2 3 4……1998 1999 2000該怎麼操作呢 。 於是下面有人說可以對欄位的FID操作
自定義介面內部類的一個簡單的使用(跨類傳值)
實現使用介面內部類進行跨類傳值 定義一個普通的Java類: package com.example.shiyan; public class haitao { private static haitao instance; hh
線段樹總結(單點更新,區間更新,區間求和,區間求最值)
注:每個功能在程式碼中有註釋,具體詳解可自己輸出測試 #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define N 4000
自定義介面內部類的兩個具體應用(跨類傳值)
個人理解,Android開發中的介面內部類和 C#中委託和事件的作用是一樣的 觸發某類中定義的事件後,會執行所有繫結到這個事件上的方法,這些方法在其它不同的類中 例子一: 例子二:(使用自定義介面內部類實現主Acti
定義一個汽車類Vehicle,要求如下:[選做題] 2.1屬性包括:汽車品牌brand(String型別)、顏色color(String型別)和速度speed(double型別),並且所有屬性為私有。
private String brand; private String color; private double speed=0; Vehicle(String brand, String color) { this.brand = brand; this.colo
thinkphp+layui,在父頁面對彈窗中的控制元件進行賦值操作(傳值)。
問題描述:點選評論回覆按鈕->彈出表單輸入框->對所點選的按鈕進行回覆評論->提交回復。這裡遇到的問題就是怎麼通過layer建立一個彈窗並把這個需要操作的id值傳到iframe彈出層。解決:點選當前條需要回復的評論並獲取到這個評論的id值,在點選回覆按鈕是用
檔案屬性改不了(解決完病毒後,屬性中的隱藏灰色,選不了)
開始---執行裡輸入--- CMD, 在彈出的命令提示符內輸入: attrib -r -h 路徑(你要修改的檔案或資料夾) 例如:你要修改的D:\a attrib -r -h D:\a 如果修改所有檔案可以 attrib -r -h D:\*
收藏、點贊按鈕 怎麼由當前的狀態(收藏/取消收藏)通過點選設定為取消收藏(收藏)
看到這裡,我是想介紹我對這個收藏按鈕(五角星),反覆點選來迎合使用者體驗的。那怎麼滿足反覆點選設定狀態呢? 要求是這樣的:我點選收藏按鈕(假設:原先的收藏按鈕是未收藏狀態(暗色)),當我點選過收藏的時候,按鈕被點亮為橙色。當我再次對其點選的時候,當然,我要知道此時的收藏按鈕