一.
js 控制跳轉頁面:
可用 <linkto=} > | |this.props.match.history.push('url', state) | | <redirectto=>路由元件
import react, from 'react'import from 'react-router-dom'class mytest extends components}changepage() )
}render() > : ' '} //重定向
this.changepage.bind(this) }>點選改變
直接跳轉 )
}}
二.this.props.match.history
獲取history:頁面級this.props.match.history存在,可把history傳給元件級(this.props.match.history.push == window.location.href)
注:可以通過呼叫物件的方法從url堆疊中push或者pop url出來。window.history.pushstate(null,null,url)就是向當前文件的url堆疊中push乙個新的url。使用window.history.pushstate(null,null,url)是不會使用引數url和當前的url拼接產生新的url跳轉的(但頁面級跳轉還是帶引數到url比較妥,以防無痕瀏覽,url長度不超過1000且不是用來在多視窗裡通訊的,而是為單頁面 url 狀態管理服務的)。
三.吐槽,螞蟻金服的antd好多bug啊!!
1.select元件下拉列表生成的位置竟然在html最下方,會跟著頁面滾動!!需要加上getpopupcontainer=屬性
2.table元件fix列後hover會不停的重新渲染clumns的render內容,對最底層元件的componentwillreceiveprops(父props更新改變自身的state)不斷被重新整理可能導致部分功能失效,由於螞蟻金服沒有暴露這個hover事件,暫無解決辦法。3.元件內給附初值initialvalue可以附option的value索引
key和value都要加上(antd官方文件說只加key就可以呵呵)
坑爹的antd元件!!rowselection單條點選onchange函式返回的第二個引數selectedrows有時會丟失,設定單條點選回點某個點過的選項順序不變!!,只能通過selectedrowkeys去遍歷datasource獲得某條所有資訊!!!
4.標籤,用form.setfieldsvalue方法要先賦初始值
const = this.props.form
for (let key in
data) )
} //
用form.setfieldsvalue方法要先賦初始值
setfieldsvalue(data)
getfielddecorator方法的要想元件獲取到initialvalue的值,必須在最外層,不能
在包裹:
false}> // colon設定false標籤後的冒號消失)(
// 要想input元件獲得initialvalue值,必須在最外層
)}
validatefields校驗函式第乙個引數可傳需要校驗的陣列(選填):
this.props.form.validatefields(['title'], (err, values) =>)//只校驗'title'
5.:樹形下拉框預設值type為string。
allowclear(清除所有按鈕)在onchange函式裡的第三個引數extra的allcheckednodes屬性會丟失。
6.有個loading屬性,向後台請求資料時候loading=true,載入好資料後loading=false。
7.列表只可選擇單項:
class membership extends component , //}被選中列表的詳細內容
datasource: , // 列表資料
pagination: ,
}}//
**列表點選
onselectchange(selectedrowkeys, selectdetails) = this.state
const selectedrowkeyschange = selectedrowkeys.splice(selectedrowkeys.length - 1)
const selectdetailschange = datasource.filter((item) => (item['id'] === selectedrowkeyschange[0])) // 可遍歷資料列表獲得想要資料條
this.setstate()
render()return
classname=
datasource=
locale=}
rowkey=
rowselection=
pagination=
bordered columns= loading= />
}}
css把table所有可勾選按鈕隱藏:
.table }
8. antd的datepicker漢化,專案入口檔案(index.js)裡設定:
//時間選擇漢化
import moment from 'moment'import 'moment/locale/zh-cn'moment.locale('zh-cn')
時間戳轉化成年月日時分秒:moment(val.gmtcreated).format('yyyy-mm-dd hh:mm:ss')
年月日時分秒轉化成時間戳: time.valueof()
四.獲取掛載好dom上的html**
可在componentdidmout生命週期獲得:
constructor(props)componentdidmout()
render() >
) //
兩種方式
}
五. render渲染中過濾非jsx元素資料:
render = this.state
return(}
}).filter(react.isvalidelement)
})}
六. 關於前端測試環境模擬後台介面資料mock.js在index.js的引入:
if (process.env.node_env === 'development')
mock.js:
mock.mock(`$/industry/material/listmaterial`, (options) => )
七.1.加入proxy配置
start.js檔案裡使用webpackdevserver本地啟動了乙個伺服器,封裝了配置可做**:
直接在package.json裡填寫即可:
"proxy": "目標url"
或者**多項:
"proxy":
},"/api":
}}
react 更改antd的預設樣式
2種方法 1.import styles from index.less 下面為index.less 直接引入就是全域性可以用 當然更建議外面套盒子 global ant modal body 2.直接在antd外面套一層盒子 通過less引入 然後把樣式一層層指定下去 例如 box ant tab...
React修改Antd元件樣式的方法
1 f12開啟除錯,選中elements選項 2 在elements的元素樹中選中相應的antd元件布局,然後檢視右端的css樣式表,找到控制項的css控制器結構。3 最後在我們自己的css樣式檔案中修改對應的控制器屬性就可以了 4 有一些屬性是在antd元件內部通過 設定的,這種情況下,通過上面那...
react中覆蓋antd元件的樣式
由於業務的個性化需求,我們經常會遇到需要覆蓋元件樣式的情況,這裡舉個簡單的例子。antd select 在多選狀態下,缺省會展示所有選中項,這裡我們給它加乙個限制高度,超過此高度就出滾動條。import from antd import styles from testpage.less const...