在 2 次点击之前状态不会更新并且无法将新状态添加到 url 中反应本机

State is not updating until 2 clicks and cant add new state to url in react native

我在更新状态时遇到问题。我使用设置为 'newurl' 的地址获取 JSON 结果,并在 FlatList 中显示内容。一切正常,我有一个按钮,单击该按钮会更新 'newurl' 状态并重新加载数据。问题是需要点击两次才能更新状态?我试过将 setState 放在不同的 class 中,但不起作用我也无法创建新的 'newurl' 来包含 'newuser'

的状态

点击2次后更新状态和重新加载数据的onclick是:

onPress = () => {   
this.setState({
  newurl: 'https://www.newtesturl'
}),  
fetch(this.state.newurl) 
.then(response => response.json())
.then((response)=> {
this.setState({loading: false,list: response.data})
})
}

更新 'newurl' 字符串时出现问题,我似乎无法向其中添加其他数据状态。如果我使用下面的代码,'newurl' 几乎是原样,没有添加 'newuser' 状态?

this.setState({
  loading: true,
  newurl: 'https://www.example.com/userid={this.state.newuser}'
});

这真的很烦人,因为当我将其添加到如下所示的直接 url 中时它有效吗?

<Image source={{uri: `https://www.example.com/userid={this.state.newuser}`}}  />

这就是我设置道具的方式,以防万一? :

type Props = {};
export default class App extends Component<Props> {
  constructor(props) {
    super(props);
    this.state = { list: [], loading: false, newuser: '10101', newurl: '' };
  }

抱歉,如果我没有解释得很好,但如果您需要任何澄清,请询问,谢谢

状态更新可能是异步的。有关详细信息,请参阅 here

第二个问题是因为你没有在那里使用模板字符串。有关详细信息,请参阅 here