首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-rails资产管道图像路径

react-rails资产管道图像路径
EN

Stack Overflow用户
提问于 2018-06-30 19:05:34
回答 1查看 2.4K关注 0票数 3

我正在使用react-rails gem,但我在弄清楚如何从资产管道加载图像时遇到了麻烦。

目前我使用.js.jsx.erb扩展来处理这个问题,但据我所知这是非常规的。(我说的对吗?)

有时我只是使用一个空的div,并将div的background-image属性设置为我想要使用的图像。

在使用react-rails时,将图像加载到react组件的最佳方法是什么

EN

回答 1

Stack Overflow用户

发布于 2018-06-30 21:54:18

有三种导入镜像的方式...

1)如果您直接使用jsx.erbjs.erb文件...

代码语言:javascript
复制
var image_path = "<%= asset_path(my_image.png) %>"

                        OR

render: function() {
 return (
  <img src={"<%= asset_url('path/to/image.png') %>"} />
 )
}

2)作为道具通过.erb文件传递给.js.erb.jsx.erb文件

.erb文件中

代码语言:javascript
复制
render_component('Component', img_src: image_url('the_path'))

在您的.js.erb.jsx.erb文件中

代码语言:javascript
复制
render: function() {
 return (
  <img src={this.props.img_src} />
 )
}

3)推荐:使用.js.jsx文件,并使用视图文件.html.erb渲染

在查看文件example.html.erb

代码语言:javascript
复制
<%= react_component("Example", props: {}, prerender: false) %>

.jsx文件Example.jsx

代码语言:javascript
复制
import React, { Component } from "react";
import Image from "<IMAGE_PATH>/image.png";

export default class Example extends Component {
  constructor(props, _railsContext) {
   super(props);
  }

  render(){
    return(
      <div>
       <img src={Image} alt="example" />
      </div>
    )
  }
}

您需要注册Example组件。在你的app > javascript > packs > application.js

代码语言:javascript
复制
import ReactOnRails from "react-on-rails";
import Exmaple from "<COMPONENT_PATH>/Exmaple";

ReactOnRails.register({
 Exmaple
}); 

来源:github

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51114308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档