Ваше регулярное выражение будет фактически соответствовать цифрам no , потому что вы использовали *
вместо +
. Это то, что (я думаю) вам нужно:
(\d+)(?:#p(\d+))?
в первую очередь, почему это не работает? Любая ошибка? Во всяком случае, я всегда создаю новую переменную и вставляю responsejson изнутри. Попробуйте это:
.then(responseobj => {
let responseToHandle = responseobj;
this.setState({
state_object: responseToHandle,
})
Другим решением может быть то, что в функции выборки вы не можете получить доступ к этому объекту, я всегда создаю в верхней части класса переменную с именем self. Затем в методе компонента конструктора я присваиваю это самому себе, а затем все операции, требующие этого, могут быть доступны самим объектом.
example:
import React from ........
//more of your imports......
var self;
export default class YourClassOrComponent extends Component{
......
constructor(){
super();
self = this;
......
}
// using setState inside a function with self -->
....
.then(responseobj => {
let responseToHandle = responseobj;
self.setState({ // <----- Note that I use here self instead of this
state_object:responseobj,
})
.....
Thats все, что я могу вам сказать с моими знаниями, удачи!
If you are using fetch library to make API calls.
.then((responseobj) => responseobj.json())
.then((jsonResponse) => {
this.setState({
state_object:jsonResponse,
})
})