Невозможно сравнить реквизиты при отправке componentWillRecieveProps

Эта проблема произошла в моем проекте из-за вызова GET ajax с длинной строкой xml в качестве значения параметра. Решенный следующим образом: сделать его как ajax-сообщение для вызова класса Java Spring MVC, как это.

$.ajax({
    url: "controller_Method_Name.html?variable_name="+variable_value,
    type: "POST",
    data:{ 
            "xmlMetaData": xmlMetaData // This variable contains a long xml string
    },
    success: function(response)
    {
        console.log(response);
    }
  });

Метод класса Spring MVC:

@RequestMapping(value="/controller_Method_Name")
  public void controller_Method_Name(@RequestParam("xmlMetaData") String metaDataXML, HttpServletRequest request)
{
   System.out.println(metaDataXML);
}
0
задан Tom Rudge 18 February 2019 в 09:11
поделиться

2 ответа

if(nextProps.Id === this.props.Id) {    
            this.props.fetchFileUploads(this.props.Id)
        }

componentWillReceiveProps будет вызываться каждый раз, а nextProps.Id всегда будет равняться this.props.Id и, следовательно, бесконечному циклу, вместо этого вы можете сохранить Id для определения состояния и улучшить свое сравнение оттуда

0
ответ дан Isaac 18 February 2019 в 09:11
поделиться

Вам необходимо правильно написать Receive в коде рефакторинга:

componentWillReceiveProps(nextProps){
//              ^^
    if(nextProps.Id !== this.props.Id)
    dispatch(this.props.fetchPlayerFileUploads(Id))
}
0
ответ дан Jack Bashford 18 February 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: