- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 useEffect 函数,由于 yearsBackSettings
更改而触发,并且 useEffect 中的 console.log 语句也触发:
useEffect(() => {
console.log("something changed")
console.log(yearsBackSettings)
if (userId) {
const user_profile_api_url = BASE_URL + '/users/' + userId
const request_data = {
searches: recentSearches,
display_settings: displaySettings,
years_back_settings: yearsBackSettings
}
console.log("running user POST")
console.log(request_data)
axios.post(user_profile_api_url, request_data)
.then(response => {
console.log("user POST response")
console.log(response)
})
}
}, [recentSearches, displaySettings, yearsBackSettings])
如图所示,更改 yearsBackSettings 会导致它运行,它应该使用所有新设置发出发布请求:
但是,由于某种原因,除了股票搜索运行外,服务器上没有发生任何事情:
the last updated time for stock ibm before save: 08/25/2022 08:13:30
stock was updated within the last 5 minutes...no need to make an api call
the last updated time for stock ibm after save: 08/25/2022 08:13:30
[25/Aug/2022 08:17:25] "POST /users/114260670592402026255 HTTP/1.1" 200 9
[25/Aug/2022 08:17:25] "GET /dividends/ibm/3/5 HTTP/1.1" 200 4055
the last updated time for stock ibm before save: 08/25/2022 08:13:30
stock was updated within the last 5 minutes...no need to make an api call
the last updated time for stock ibm after save: 08/25/2022 08:13:30
[25/Aug/2022 08:17:26] "GET /dividends/ibm/27/5 HTTP/1.1" 200 8271
the last updated time for stock ibm before save: 08/25/2022 08:13:30
stock was updated within the last 5 minutes...no need to make an api call
the last updated time for stock ibm after save: 08/25/2022 08:13:30
[25/Aug/2022 08:18:11] "GET /dividends/ibm/27/70 HTTP/1.1" 200 14734
当用户加载时,发给用户的帖子是初始的。如果我登录并退出,我将失去第二部分中的 70 年:
当我注销并登录时,它显示 27 年和 5 年,我丢失了 70,因为/users POST 没有运行
我有以下 React 主要组件
import React, {useState, useEffect} from 'react';
import { connect } from 'react-redux';
import axios from 'axios';
const SearchPage = ({userId}) => {
const [recentSearches, setRecentSearches] = useState([DEFAULT_STOCK]);
const [dividendsYearsBack, setDividendsYearsBack] = useState('3');
const [debouncedDividendYearsBack, setDebouncedDividendYearsBack] = useState('3');
const [earningsYearsBack, setEarningsYearsBack] = useState('5');
const [debouncedEarningsYearsBack, setDebouncedEarningsYearsBack] = useState('5');
const [errorMessage, setErrorMessage] = useState('');
)
const [displaySettings, setDisplaySettings] = useState([
{setting_name: 'showYieldChange', visible: true},
{setting_name: 'showAllDividends', visible: true},
{setting_name: 'showAllEarnings', visible: true},
])
const [yearsBackSettings, setYearsBackSettings] = useState([
{section: 'dividendsYearsBack', years_back: 3},
{section: 'earningsYearsBack', years_back: 5}
])
const onTermUpdate = (term) => {
const trimmed = term.trim()
setTerm(trimmed);
}
debounceTerm(setDebouncedTerm, term, 1500);
debounceTerm(setDebouncedDividendYearsBack, dividendsYearsBack, 1500);
debounceTerm(setDebouncedEarningsYearsBack, earningsYearsBack, 1500);
useEffect(() => {runSearch()}, [debouncedTerm]);
useEffect(() => {
// alert(dividendsYearsBack)
if (dividendsYearsBack !== '' && earningsYearsBack !== '') {
runSearch();
}
}, [debouncedDividendYearsBack, debouncedEarningsYearsBack])
useEffect(() => {
const yearsSettingsCopy = Object.assign(yearsBackSettings);
const dividendsYearsBackSetting = yearsSettingsCopy.find((dict) => dict.section == 'dividendsYearsBack');
dividendsYearsBackSetting.years_back = dividendsYearsBack;
const earningsYearsBackSetting = yearsSettingsCopy.find((dict) => dict.section == 'earningsYearsBack');
earningsYearsBackSetting.years_back = earningsYearsBack;
setYearsBackSettings(yearsSettingsCopy);
}, [dividendsYearsBack, earningsYearsBack])
useEffect(() => {
const dividendsYearsBackSetting = yearsBackSettings.find((dict) => dict.section == 'dividendsYearsBack');
setDividendsYearsBack(dividendsYearsBackSetting.years_back);
const earningsYearsBackSetting = yearsBackSettings.find((dict) => dict.section == 'earningsYearsBack');
setEarningsYearsBack(earningsYearsBackSetting.years_back);
}, [yearsBackSettings])
useEffect(() => {
console.log("user id changed")
if (userId) {
const user_profile_api_url = BASE_URL + '/users/' + userId
axios.get(user_profile_api_url, {})
.then(response => {
// console.log(response)
const recent_searches_response = response.data.searches;
const new_recent_searches = [];
recent_searches_response.map(dict => {
new_recent_searches.push(dict.search_term)
})
setRecentSearches(new_recent_searches);
setDisplaySettings(response.data.display_settings);
setYearsBackSettings(response.data.years_back_settings);
})
.catch((error) => {
console.log("error in getting user profile: ", error.message)
})
}
}, [userId])
useEffect(() => {
console.log("something changed")
console.log(yearsBackSettings)
if (userId) {
const user_profile_api_url = BASE_URL + '/users/' + userId
const request_data = {
searches: recentSearches,
display_settings: displaySettings,
years_back_settings: yearsBackSettings
}
console.log("running user POST")
console.log(request_data)
axios.post(user_profile_api_url, request_data)
.then(response => {
console.log("user POST response")
console.log(response)
})
}
}, [recentSearches, displaySettings, yearsBackSettings])
return (
<div className="ui segment">
{renderMainContent()}
</div>
</div>
)
}
const mapStateToProps = state => {
return { userId: state.auth.userId };
};
export default connect(
mapStateToProps
)(SearchPage);
// export default SearchPage;
显示的 yearsBackSettings 已更改为 27 和 70(从图片中看),但 POST 请求未触发。当设置更改时,如何保存这些设置?
问题是当我更新多年前的设置时帖子没有运行:
useEffect(() => {
console.log("running user profile post");
const user_profile_api_url = BASE_URL + '/users/' + userId
const request_data = {
searches: recentSearches,
display_settings: displaySettings,
years_back_settings: yearsBackSettings
}
axios.post(user_profile_api_url, request_data)
.then(response => {
console.log(response)
})
}, [recentSearches, displaySettings, yearsBackSettings])
这不会在 yearsBackSettings 更改时运行。我正在将 yearsBackSettings 记录到控制台并且它肯定已更改,但是对用户配置文件的发布请求不会触发
我认为问题出在这里:
useEffect((
) => {
const dividendsYearsBackSetting = yearsBackSettings.find((dict) => dict.section == 'dividendsYearsBack');
dividendsYearsBackSetting.years_back = dividendsYearsBack;
const earningsYearsBackSetting = yearsBackSettings.find((dict) => dict.section == 'earningsYearsBack');
earningsYearsBackSetting.years_back = earningsYearsBack;
setYearsBackSettings(yearsBackSettings);
}, [dividendsYearsBack, earningsYearsBack])
例如,我尝试对 yearsBackSettings 执行任何 useEffect,但它从未奏效。我已经更改了几次设置,但警报没有触发:
useEffect(() => {
alert("years back settings changed")
}, [yearsBackSettings])
最佳答案
问题出在您的 python 服务器代码中,在您的控制台中,您可以看到您实际上正在记录一个响应代码为 200 的响应对象,这意味着您的服务器在实际请求期间不会崩溃。
您的服务器端日志记录可能存在问题,导致请求未显示,我会先查看。
关于javascript - useEffect 触发并运行打印语句但没有实际的 axios.post 调用运行 reactjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73484500/
有没有更好的方法用 PHP 将数据输出到 html 页面? 如果我想在 php 中用一些 var 制作一个 div,我会写类似的东西 print (''.$var.''); 或 echo "''.$v
我可以使用 java awt print 来打印文档/文件而不是使用 javax print 吗?我发现在 java awt print 中有一个选项可以使用 AttributedString 将内容
目前我通过以下方式运行 R 脚本: R --slave argument1 argument2 ... 我想知道 R 中关于如何退出脚本并发出警告的最佳实践,q() 会这样做吗? if(!file.
谁能告诉我如何编写一个程序,用 gcc 编译时打印 c ,用 g++ 编译时打印 c++? 最佳答案 #ifdef __cplusplus printf("c++\n"); #else
我需要支持在 KitKat 设备上打印,但我的目标 SDK 是 13(无法更改)。 特别是我需要打印一个 webview。 这是用于打印 webview 的 API: http://developer
我正在尝试创建一个简单的函数,其中 python 将根据您的年份输入计算年龄。我已经尝试了几种方法,但我没有运气 atm。 附:对不起,我是新手。 ame = input(" Enter your n
JavaFX 2.0 是否支持打印?我有一个文本区域,我从中获取文本然后我想打印它,但似乎没有这个功能。 当然,这里我说的是打印到打印机。 :) 最佳答案 尚不支持。作为一种解决方法,您可以使用 Ja
我试图找出printOn的重点。我查看了一些实现它的类,看起来它只是帮助打印不同数据类型的单位。这是准确的吗? 如果是这样,有人能指出我如何为我自己的类(class)实现这一点的正确方向吗?我将在可能
我无法让 IE 打印我的 Canvas (使用 excanvas 生成)...我使用的是最新版本的 excanvas。 http://dl.dropbox.com/u/997831/canvas.ht
我搜索了很多但没有人回答我的问题,我读到在这样的信号处理程序中使用 cout 是不安全的: void ctrlZHandler(int sig_num) { //SIGTSTP-18
我有兴趣打印一系列查询。我有以下代码。 start = datetime.datetime(2012, 2, 2, 6, 35, 6, 764) end = datetime.datetime(201
public class javaClass { public static void main(String [] arg) { String row1 = "A____A"
我需要写入前一行的命令,例如不带\n 的 print()。 下面是一些示例代码: a=0 print("Random string value") if a==0: print_to_prev
我有一个使用 UIKit 和 Objective C 的旧 iOS 应用程序,我目前正在将其移植到 SwiftUI 和 Swift。一切都很顺利,我喜欢 Swift 和 SwiftUI。该应用程序已经
我创建了一个求和函数,它接受一个开始编号和一个结束编号,并返回这两点之间的总和答案 def print_sum_equations(start_number,end_number):
在 Perl 6 中,print 和有什么区别? , put和 say ? 我怎么看 print 5不同,但 put 5和 say 5看起来一样。 最佳答案 put $a就像 print $a.Str
我正在使用 here 中的 getOrgChart 库,我正在尝试打印整个图表,而不仅仅是可见部分。不幸的是,当使用标准库打印功能时,它只会打印出第一部分,而我不知道如何打印整个图表(该图表相当宽,大
我制作了一个非常适合 A4 页面的 View 。现在我想打印它。请注意,我没有使用drawRect或类似的东西,只是一个带有 subview 和文本标签的普通 View 。我的问题是,我对该 View
由于 Cocoa-Java 已弃用,我正在将 Cocoa-Java 代码迁移到 Cocoa + JNI。该代码打印存储在文件中的图像。新的 Cocoa 代码基本上是: NSImage *image =
这个问题已经有答案了: Printing a TDBGrid (4 个回答) 已关闭 6 年前。 如何在不安装或下载组件的情况下打印 DBGrid? 或者 如何将 DBGrid 的数据放入 RichE
我是一名优秀的程序员,十分优秀!