微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用if-rendering时ReactJS的组件消失了

如何解决使用if-rendering时ReactJS的组件消失了

这是问题:

我有一个带有if语句渲染的ReactJS应用。从后查询获得对API的响应后,我需要呈现组件,但它会显示一秒钟,然后消失。问题出在哪儿?谢谢!

handleSend() {
    try {
      axios.post('/login',{  posted_data: this.state.value,window_size: this.state.range_val,sin: this.state.value1,sin_v: this.state.value2 }).
                              then(response => this.setState({ token: response.data['data'] }));
         
    } catch (e) {
      console.log(`? Axios request Failed: ${e}`);
    }
  }  
  
  render() {
    return (
      <div className = "MarkdownEditor">
        
        <Form> 
          ...
          <Button variant="primary" type="submit" onClick={this.handleSend}>
            Найти
          </Button>
          { this.state.token == "a" && 
            <h2> {this.state.token} </h2>
          } 
        </Form>
  
      </div>
    );
  }
}

解决方法

如果#include "controller.hpp" template <size_t N> auto Controller<N>::empty_controller() -> Controller<1> { return Controller<1>([](auto,auto,auto) {}); } template <> constexpr Controller<1>::Controller(Callable _callable) : callables(std::array<Callable,1> { std::move(_callable) }) { } template <> constexpr Controller<1>::Controller() : Controller(empty_controller()) { } template <size_t N> constexpr Controller<N>::Controller(std::initializer_list<Callable> _list_callables) : callables(_list_callables) { } template <size_t N> void Controller<N>::call(const HTTPRequest& req,HTTPResponse& res,Context& ctx) { for (auto& callable : callables) { callable(req,res,ctx); } } 组件代表实际的HTML表单元素,那么当按钮触发提交时,您需要防止默认行为。否则,该页面将立即重新加载,这将说明您正在消失的元素。

Form

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。