第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

React-道具過濾最佳實(shí)踐

React-道具過濾最佳實(shí)踐

侃侃爾雅 2021-11-12 16:44:16
我是 React 的中級開發(fā)人員,我想就實(shí)現(xiàn) props 過濾的最佳實(shí)踐提出建議。確實(shí),我意識到我在對這些道具進(jìn)行排序時(shí)非常有限:我是否必須將這些道具放在狀態(tài)中然后顯示/排序狀態(tài)有沒有一種方法可以直接從道具中顯示和排序表格?例子 :應(yīng)用程序.js@connect(({ events }) => ({ events }))class EventList extends React.Component { constructor(props) {    super(props);    this.state = {    };  }  componentDidMount() {    const { dispatch } = this.props    dispatch({type: 'events/GET_ALL_EVENTS'})  }  render() {    const { events } = this.props    const { allEvents } = events    return (      <div>        <div className="card">           <div className="card-body">              <EventsAfter events={allEvents} />           </div>         </div>      </div>    )  }}export default EventListEventsAfter.jsclass EventAfter extends React.Component {  constructor(props) {    super(props);    this.state = {      dateSort: "next_3_day",    };  }  sortDate = value=> {    this.setState({ dateSort: value.target.value })    /* NEED TO SORT PROPS ARRAY OF EVENTS HERE */  }  render() {    const { events } = this.props    const { dateSort } = this.state    return (      <div>        <div className="row">          <div className="col-lg-12">            <div>              <div style={{display:"inline-block", paddingBottom:'10px'}}>                <Radio.Group size="default" value={dateSort} onChange={this.sortDate}>                  <Radio.Button value="next_3_day">Les trois prochains jours</Radio.Button>                  <Radio.Button value="this_week">Cette semaine</Radio.Button>                  <Radio.Button value="next_week">La semaine prochaine</Radio.Button>                </Radio.Group>              </div>            </div>          </div>        </div>在第一個(gè)文件中,我將事件(表)發(fā)送到子組件“ EventAfter ”。在第二個(gè)文件中,當(dāng)用戶單擊單選按鈕時(shí),它會更改排序狀態(tài)(next_3_day, this_week, next_week)。我想(但我不能)只對符合條件的事件進(jìn)行排序和顯示而不修改原始表格(以便我可以顯示整個(gè)表格)。你能幫助我嗎 ?我在這部分正確使用 react 還是存在模式?
查看完整描述

2 回答

?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

您的表列已經(jīng)有一個(gè)排序功能,允許重新排序,因此您不需要將排序后的值存儲在狀態(tài)中。

盡管您有一個(gè)dateSort: "next_3_day"看起來像是您想要過濾數(shù)據(jù)集(而不僅僅是排序)的東西,但這是一個(gè)不同的問題。

看起來您想要執(zhí)行以下操作:

dataSource={this.state.dateSort === 'next_3_day' ? events.filter(x=>x.date > new Date((new Date()).getTime() + (60*60*24*3))):this.events}

[并擴(kuò)展其他 3 個(gè) dateSorts` 選項(xiàng)]

我個(gè)人不會將過濾后的值存儲在狀態(tài)中,我只會創(chuàng)建一個(gè)過濾它的函數(shù)。

您正在設(shè)置狀態(tài),dateSort以便組件將重新渲染,并允許從父組件傳遞新數(shù)據(jù)。

我還建議https://date-fns.org/在此處使用簡化的日期算術(shù)。

我看不到您輸入的數(shù)據(jù)類型,但a.date.size 對我來說似乎有點(diǎn)可疑。您的排序當(dāng)前是否使用此值?


查看完整回答
反對 回復(fù) 2021-11-12
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

在您的情況下,最好將其稱為過濾而不是排序,否則聽起來有點(diǎn)混亂,排序通常意味著排序...


但是,是的,最好在 state 中創(chuàng)建一個(gè)屬性,其中將包含已過濾或有序的數(shù)組。


this.setState({ 

  dateSort: value.target.value 

  eventsFiltered: this.props.event.filter(someFilterFunc)

})

并傳遞給子組件 this.state.eventsFiltered


查看完整回答
反對 回復(fù) 2021-11-12
  • 2 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號