我传递的名称和值处理函数从子组件。
现在我想将状态设置为与提供的名称匹配的值。但是我不知道如何设置它。
我尝试了这种方式(但它给出了错误-'this.set状态不是一个函数'):
class ParentComponent extends Component {
constructor(props) {
super(props);
this.myRef = React.createRef();
this.state = {
loanAmount: 348600.48,
numberOfYears: 70,
}
handleChange(name, value) {
this.setState({ name: value },() => {
this.financeCalcualte();
});
}
子组件的代码为:
onChange = (event) => {
const {name, rawValue} = event.target;
this.props.handleChange(name, rawValue)
}
设置它的正确语法是什么?
似乎您正在查找计算属性名称
handleChange(name, value) {
this.setState({ [name]: value },() => {
this.financeCalcualte();
});
}
如果您在基于类的组件中具有此函数,那么您可以将当前函数更新为如下所示的箭头函数。
handleChange = (name, value) => {
this.setState({ name: value },() => {
this.financeCalcualte();
});
}
问题是您正在访问这个
,而没有给出上下文。
另一种方法是将this绑定到函数。下面是在构造函数中以另一种方式执行此操作的示例。
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this);
// Other code ....
}
编辑
正如在其他答案和注释中提到的,您必须使用计算属性名,您不能直接使用变量名并将其设置为另一个变量。
this.set状态({[name]: value})
要在回调函数中使用此
,如注释中所述,必须将其绑定到构造函数中或使用箭头函数。
另外,由于你的name
是一个变量,你不能更新你的状态,比如:
this.setState({ name: value }
因为这会在您的状态中创建一个name
属性,所以不会更新将name
作为传入变量的状态变量。因此,您应该使用计算属性。
handleChange = (name, value) =>
this.setState({ [name]: value }, () => this.financeCalcualte());
我正在调用这个函数。因为它在增加值,但是当我访问它时,它返回以前的值。我想访问同一函数中最新更新的值,我应该做什么。 如何访问同一函数中的最新状态值
我在用历史。在函数内的特定页面中按入React,以便在单击按钮后将其按入特定页面 someFunction(paramToPass){this.props.history.push('/abcfolder/TheFileToReceiveParam',{paramToPass});} 当页面打开时,我想在FileToReceiveParam中获取paramToPass,但我不知道如何执行此操作。
问题内容: 我正在使用 javax.servlet.http.HttpServletRequest 来实现Web应用程序。 我可以使用 getParameter 方法获取请求的参数。但是我不知道如何在请求中设置参数。 问题答案: 您不能,不使用标准API。代表服务器收到的请求,因此添加新参数不是有效的选择(就API而言)。 原则上,您可以实现一个子类,该子类包装原始请求,并拦截方法,并在转发时传递
我们使用复制的Tomcat Web服务器设置与两个节点。我们使用 Ehcache 作为 Web 应用程序的 Hibernate 级别 2 缓存提供程序。因此,我们通过 RMI 复制配置了 Ehcache 设置,如官方文档中所述:http://ehcache.org/documentation/user-guide/rmi-replicated-caching。 我们现在对缓存条目使用timeToL
提前谢了。我有一个状态数组,如下所示。 我需要添加一个项目到状态数组,我发现我们不需要做状态突变。如何使用PrevState设置状态。 如何调用set State以追加此状态数组。 像这样的东西?
问题内容: 在React组件中,最好是在Constructor()或componentWillMount()中设置初始状态? 要么 问题答案: 使用ES6类时,最好在构造函数中使用,但不要使用API,而是这样做: 另外,如果您有可用的类属性(Bab期1),则可以执行以下操作: