我想使用 React v16.0.0 上的新功能来返回一个字符串,然后在
<img src="returnedString" >
当前的行为是什么?
好吧,如果我将我的组件呈现在
<div > <MyComponent /> </div>
我可以看到屏幕上显示的字符串(见附件截图),但我的目标是在<img src="returnedString" />
这是我的代码:
// My component that returns strings
class MyComponent extends Component {
render(){
switch (this.props.type) {
case 'text':
return this.props.json.data[this.props.Key]
break
case 'image':
return this.props.json.data[this.props.Key]
break
default:
return null
break
}
}
}
const UserComponent = (props) => {
return (
<div>
{/* this displays the string on the page */}
<MyComponent type='image' Key='avatar' desc='Abified image' {...props} />
{/* If I console.log this line I get <img src={[object object]} /> */}
<img src={<MyComponent type='image' Key='avatar' desc='Abified image' {...props} />} />
</div>
)
}
// Parent Component
class App extends Component {
constructor(props){
super(props)
this.state = {
json:[]
}
}
// Fetching data from an api
componentDidMount(){
fetch("https://reqres.in/api/users/2")
.then(response => response.json())
.then(json => {
this.setState({json: json })
})
}
render() {
return (
<div>
<UserComponent {...this.state}/>
</div>
);
}
}
export default App;
我怎样才能做到这一点?
预期的行为是什么?
我想在一个里面使用返回的字符串
哪些版本的 React ?
反应 v16.0.0
这在以前版本的 React 中有效吗?
不,因为它是 React v16.0.0 中的新功能