http クライアントの get コールバックから root() にウィジェットを追加しようとしています。メニュー項目をクリックすると、get リクエストが送信され、レスポンスに基づいてウィジェットが追加されます。
私のクリックハンドラー:
Wt::Http::Client *client = new Wt::Http::Client(Wt::WApplication::instance());
client->done().connect(boost::bind(&RequestBase::handleHttpResponse, this, _1, _2));
client->get("url...");
そしてコールバックメソッド:
void RequestBase::handleHttpResponse(boost::system::error_code err, const Wt::Http::Message& response) {
stringstream ss;
ss << "test" << i++;
new Wt::WText(ss.str(), root());
Log(ss.str());
}
初めてメニュー項目をクリックすると、コンソールにログ メッセージが表示されますが、ブラウザでは何も起こりません。もう一度クリックすると、「test0」テキストがブラウザに表示され、「test1」がコンソールに表示されます。3 回目は、「test1」がブラウザに表示され、「test2」がコンソールにnew Wt::WText("test", root());
表示されます。クリック ハンドラに追加すると、クリック直後にテキストがブラウザに表示されます。どうすればそれを機能させることができますか?