Как найти другое значение ключа из источника данных от другого ключа? - PullRequest
0 голосов
/ 01 февраля 2019

Я использовал response-handsontable для добавления нескольких строк, у меня есть dropdownSource, в этом выпадающем списке я заполнял имя из списка на основе имени, как найти соответствующий Id и передать данные настроек, чтобы я мог отправитьВ запросе с таким идентификатором.

       settings: {
          colHeaders:['Full Name', 'Staff Id','NRIC','Passport' , 'Nationality',  'Position Code',  'Service Code',  'Select Plan'],
          data: [{first_name:"", company_id:"", ic_no: "", passport_no: "", nationality: "",  position_code: "",  service_code: "", subscription_plan_id: ""}],
         columns: [
              { data:"first_name"},
              { data: "company_id"},
              { data: "ic_no"},
              { data:"passport_no"},
              { data: "nationality"},
              { data: "position_code"},
              { data:"service_code"},
              { data: "subscription_plan_id", type: 'dropdown', source:[] },
          ],
          minSpareRows: 0,
          contextMenu: true,
          rowHeaders:true, 
          manualColumnResize: true,
          columnSorting: true, 
          manualRowResize: true, 
          manualRowMove: true,   
          manualColumnMove: true, 
          colWidths: [100, 100, 100,100, 100, 100, 100, 230],
        }

В состоянии я сохраняю настройки. Из хранилища изменений я получаю ответ в виде списка, как показано на рисунке, из ответа на изображение, которое я заполняю именами, но вв запросе мне нужно заполнить соответствующий ему subscription_plan_id

_userStoreChange(type) {
    if (type == 'PlansList') {
        let planslist = UserStore._getAllPlans() || {};
        this.setState({ planslist }, ()=>{
          let plans = this.state.planslist && this.state.planslist.payload;
          let sourceForPackageName = plans.map(el => el.plan_name);
             let columns = this.state.settings.columns.map(function(col){
                    if(col.data === "subscription_plan_id"){
                        col.source = sourceForPackageName;
                    }
                    return col;
             });
            this.refs.hot.hotInstance.updateSettings({columns: columns});

        });
    }

}

Handsontable Component:

   <HotTable root="hot" ref="hot" settings={this.state.settings} strechH="all" />

В запросе я могу передать plan_name, но мне нужно его соответствующее значение `subscription_plan_id

Plans List response `

...