我想这样做(显然不工作)< br >我可以将结果存储在一个状态中,并在< code>render()方法中呈现组件,但问题是我进行了许多调用,并将有许多res对象。我最终会有许多状态要维护,所以我想在< code>axios调用后只返回一个组件,而不是每次都改变许多状态。这可能吗?< br >
class InstanceViewer extends React.Component {
constructor(props) {
super(props);
this.MyComponent = {}
}
componentWillMount() {
getData()
}
getData(){
axios.get('/myurl/', {})
.then((res) => {
this.MyComponent = <h1> res </h1>
});
}
// I just put this line there because I don't know the correct way to do this
render(){return({this.MyComponent})}
}
问题是您的axios调用是异步的,而“this.MyComponent”在返回时是一个空对象。稍后会用响应更新状态,但您已经执行了引用此内容的代码行。MyComponent仍然是空对象。因此,您不会看到任何错误,也不会在DOM元素上看到任何预期的数据。该解决方案是一个三元运算符,仅呈现此结果。如果对象包含预期结果,则返回MyComponent。
你可以这样做。您需要维护一个状态
。每当来自 api 的数据
到达时,请准备 元素
并使用该元素设置状态。
class InstanceViewer extends React.Component {
constructor(props) {
super(props);
this.state = {MyComponent: null}
}
componentWillMount() {
getData()
}
getData(){
axios.get('/myurl/', {})
.then((res) => {
let elem = <h1>{res}</h1>
// Set the state with created element. It will rerender the component and this element will be displayed.
this.setState({MyComponent: elem})
});
}
render(){
return(
<div>
// Render the state. Initially it will be null but after api result, it will display the content.
{this.state.MyComponent}
</div>
)}
}
这是可能的,但不推荐。您跳过了渲染生命周期,因此必须在获取数据后强制重新渲染:您可以在不调用setState的情况下强制React组件重新渲染吗?
但是我建议你只将res保持在组件状态:
class InstanceViewer extends React.Component {
constructor(props) {
super(props);
this.state = {res: ""}
}
componentWillMount() {
getData()
}
getData(){
axios.get('/myurl/', {})
.then((res) => {
this.setState({res})
});
}
render(){return(<h1>{this.state.res}</h1>)}
问题内容: 例如我可以做: React将在哪里渲染: 目前,我遇到了错误: 在使用browserify和babelify进行转译时 问题答案: 从React v16.0版本开始,当您位于组件内部时,您可以呈现一个组件数组,而无需在额外的元素中包装项目: 切记仅设置按键。 更新 现在从16.2版本开始,您可以使用片段 短语法 在,您仍然无法渲染多个项目,因为react需要一个根。因此,您可以在中渲染
我有一个非常简单的练习,我注册客户端名称(字符串),我使用数组来做到这一点,所以当我添加一个新的我将使用另一个辅助数组,然后增加原来的长度,或者我将使用System.array复制,有没有其他方法,逐渐增加数组长度,因为你需要添加元素到该数组,不涉及辅助数组?
问题内容: 众所周知,Java总是在创建时初始化数组。即总是返回一个所有元素= 0的数组。我知道这对于对象数组是必须的,但是对于原始数组(可能是布尔型),在大多数情况下,我们并不关心初始值。 有人知道避免这种初始化的方法吗? 问题答案: 我已经做了一些调查。没有合法的方法在Java中创建未初始化的数组。甚至JNI NewXxxArray也会创建初始化的数组。因此,不可能确切知道数组清零的成本。尽管
问题内容: 我试图通过对象属性(此示例的名称)并在函数的轻松循环中列出它们。我发现这样做有些尴尬,但这似乎不正确。 这是我得到的: 有一个更好的方法吗?我只需要一个循环即可遍历对象数组,列出所需的属性并创建许多html节点之一。 问题答案: 您可以简单地在数组上 映射
我想知道我是否可以使用MathJax渲染LaTeX符号,而不封装LaTeX符号周围的\(......\)。例如,对于\frac{2}{3}而不是\(\frac{2}{3}\),如果是,我如何设置它? 非常感谢!
我目前正在尝试使用chart.js在ReactJS中呈现条形图 信息: 官方网页-http://www.chartjs.org/docs/ GitHub-https://github.com/reactjs/react-chartjs 我的问题是,即使我的终端没有给我任何错误,我的本地服务器没有呈现任何东西。 这是我的代码: 如果我犯了一些愚蠢的错误,请容忍我,这是我编写的第一个React应用程序