【问题标题】:React.js - pass in actual URL with this.props rather than link to localhost?React.js - 使用 this.props 传递实际 URL,而不是链接到 localhost?
【发布时间】:2018-05-20 21:38:43
【问题描述】:

我正在用 React.js 开发一个小程序。我正在尝试使用 {this.props} 传递一个 URL,但不是链接到实际网页,而是链接到本地​​主机中的页面。我一直试图弄清楚发生了什么,但我不明白为什么链接没有引出。

我正在构建一个应用程序,该应用程序会生成一个用户单击的 URL,以直接指向 jpeg/gif。

JSON URL(狗的随机图片):https://random.dog/woof.json

这是我的代码:

App.js

import React, { Component } from 'react';
import Search from './components/Search';

class App extends React.Component {
  state = {
    dog_URL: undefined,
  }
  getDogs = async (e) => {
    e.preventDefault();
    const api_call = await fetch(`https://random.dog/woof.json`);
    const data = await api_call.json();
    const dog_url = data.url;
    this.setState({
      result_URL: dog_url
    })
  }
  render() {
    return (
      <div className="container">
          <Search 
            getDogs={this.getDogs} 
        </div>

      );
  }
}

export default App;

从“反应”导入反应;

class Search extends React.Component {
    render() {
        return (
            <form onSubmit={this.props.getDogs}>
                <input type="text" name="q" placeholder="search for..." />
                <br />
                <Button> Search </Button>
                <br />
<p> Dog link: <a href="{this.props.dog_url}">{this.props.dog_url}</a> </p>
            </form>
            )
    }
}

export default Search;

预期结果:用户能够点击链接

实际结果:链接指向http://localhost:3000/%7Bthis.props.dog_url%7D

任何人都可以就为什么这不起作用提供一些指示或建议吗?

【问题讨论】:

    标签: javascript reactjs url localhost fetch-api


    【解决方案1】:
    <p> Dog link: <a href="{this.props.dog_url}">{this.props.dog_url}</a> </p>
    

    我不认为"{this.props.dog_url}" 需要被引用。相反,考虑到 JSX 变量插值的工作方式,简单的 {this.props.dog_url} 应该可以工作。这是否可能导致奇怪的行为?

    【讨论】:

    • 哇,你是对的!完全解决了这种行为,我根本不需要在它周围加上引号:)
    猜你喜欢
    • 2019-12-31
    • 2018-03-26
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多