标签: react-jsx

字符串作为reactjs中的html

我有一个返回几行html的函数,如下所示:

render: function() {
  var badges = user.get('achievements').badges.map(function(badge) {
    var str = '<h3><span className="fa fa-fw '

    switch(badge.id) {
    case '0':
      str += ('fa-briefcase"></span><small>' + badge.text + '</small></h3>')
      break;
    case '1':
      str += ('fa-shopping-cart"></span><small>' + badge.text + '</small></h3>')
      break;
    ...
    }

    return str;
  });

  return (
    <div className="pull-right">
      {badges}
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

在执行此操作时,字符串将在页面上呈现为文本:

<h3><span className="fa fa-fw fa-briefcase"></span><small>Visionary</small></h3><h3><span className="fa fa-fw fa-shopping-cart"></span><small>Active</small></h3><h3><span className="fa fa-fw fa-sitemap"></span><small>Lorem</small></h3><h3><span className="fa fa-fw fa-tasks"></span><small>Ipsum</small></h3><h3><span className="fa fa-fw fa-signal"></span><small>Dolor</small></h3><h3><span className="fa fa-fw fa-check-square"></span><small>Amet;</small></h3>

如何将其呈现为正确的HTML?

javascript reactjs react-jsx

5
推荐指数
1
解决办法
6853
查看次数

如何防止`jsx watch`编译交换文件?

我正在使用vim有一个编辑器.JSX编译交换/临时文件.我怎么能避免这种情况?

命令行 :

jsx --extension js --watch src/ build/
Run Code Online (Sandbox Code Playgroud)

我在stdout中看到的内容:

.helloworld.js.swp changed; rebuilding...
["helloworld"]
["helloworld"]
helloworld.js~ changed; rebuilding...
helloworld.js~ changed; rebuilding...
["helloworld"]
["helloworld"]
Run Code Online (Sandbox Code Playgroud)

谢谢.:)

reactjs react-jsx

5
推荐指数
1
解决办法
170
查看次数

如何在Yii2 Asset Bundle中使用JSX文件

我有Yii2项目设置,我决定使用Facebook的JavaScript框架React.js,它提供了一种方便的方法来在JavaScript代码中声明HTML模板,称为JSX.

我的JavaScript看起来如下:

(function () {
    'use strict';

    MyBlock = React.createClass({
        getInitialState: function () {
            return {data: []};
        },
        componentDidMount: function () {
            $.ajax({
                url: '/api/',
                dataType: 'json',

                success: function (data) {
                    this.setState({ data: data });
                }.bind(this)
            });
        },

        render: function () {
            <div class="block">
                {this.props.variable}
            </div>
        }
    });

    React.render(
        <ProfileQuestion />,
        document.getElementById('profile_question_wrapper')
    );
}());
Run Code Online (Sandbox Code Playgroud)

AssetBundle帮助我在我的视图中包含所需的库,所以我将来自CDN的React.JS和JSX文件添加到我的AssetBundle中:

class MyAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
    ];
    public $js = …
Run Code Online (Sandbox Code Playgroud)

javascript yii2 reactjs assetbundle react-jsx

5
推荐指数
1
解决办法
2262
查看次数

PHPStorm上的JSX语法错误

我试图有条件地在元素集合上设置属性.

render: {
   var buttons = [];
   for (var i = 1; i <= this.props.totalWeeks; i++) {
      buttons.push(
         <button 
            onClick={ this.changeWeek.bind(this, i) } 
            disabled={ i === this.state.currWeek }>{ i }
         </button>);
   }
}
Run Code Online (Sandbox Code Playgroud)

浏览器中的一切都很棒.但PHPStorm(版本8.0.3)将表达式标记{ i === this.state.currWeek }错误属性值的错误.

我已经尝试用函数调用,变量等来改变它,但似乎无法使错误消失.我也尝试关闭PHPStorm上的检查规则,但找不到一个可以关闭它的设置.

如何在PHPStorm中消除该错误?如果这是一个错误,那么如何通过有条件地将HTML属性添加到一组元素中来解决这个问题呢?

javascript syntax-error phpstorm react-jsx

5
推荐指数
1
解决办法
486
查看次数

如何删除/卸载嵌套的反应组件

我想卸载一个反应组件,它属于一个包含三个组件的父组件.父组件具有此渲染功能:

render: function () {
  return (
    <div className={classes}>
      <Navbar ref="navbar"/>
      <Home ref="home"/>
      <Footer ref="footer"/>
    </div>
),

handleNavbarClick: function () {
  // remove Home
}
Run Code Online (Sandbox Code Playgroud)

如果用户然后单击导航栏中的链接并且我想要卸载Home组件,我该怎么做?似乎我唯一的选择是做这样的事情(取自react.js:删除一个组件),但这似乎非常严重:

render: function () {
  var home = this.state.remove_home ? null : <Home ref="home />
  return (
    <div className={classes}>
      <Navbar ref="navbar"/>
      {home}
      <Footer ref="footer"/>
    </div>
),

handleNavbarClick: function () {
  this.setState({remove_home: true});
}
Run Code Online (Sandbox Code Playgroud)

这是做适当的反应方式吗?

reactjs react-jsx reactjs-flux

5
推荐指数
1
解决办法
1万
查看次数

React Native不给未定义变量带来错误

在本机反应中,我注意到未定义的变量不会产生错误。相反,执行只是悄悄地停止了未定义的变量。这使开发速度变慢。有什么办法可以得到更明确的错误?我'use strict;'位于文件的顶部,但这似乎无济于事

编辑:

失败示例:

      <Text style={{fontWeight: bold}}>Apply flow</Text>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,bold实际上应该是'bold'。我期待一个未定义的变量异常,但是我的应用程序只在此行静默失败。

javascript react-jsx react-native

5
推荐指数
1
解决办法
163
查看次数

字体很棒,没有使用webpack和cordova

我在Cordova项目中通过npm安装了font-awesome-webpack.我使用webpack创建一个bundle.js文件到我的/ www-folder.要使字体工作,我还必须将font-awesome-files构建到此文件夹.我的wepack.config.js:

module.exports = {
    devtool: 'source-map',
    entry: {
       app: ["./src/main.jsx"]
    },
    output: {
       path: path.resolve(__dirname, "dist/cwebphone/www"),
       publicPath: "http://localhost:8088/",
       filename: "bundle.js"
    },
    plugins: [
       new webpack.HotModuleReplacementPlugin(),
       new webpack.NoErrorsPlugin()
    ],
    module: {
      loaders: [{
         test: /\.js?$/,
         loaders: ['react-hot', 'babel'],
         exclude: /node_modules/,
         include: __dirname
    },
    { test: /\.less$/, loader: 'style-loader!css-loader!less-loader' },
    { test: /\.css$/, loader: 'style-loader!css-loader' },
    { test: /\.png$/, loader: "url-loader", query: { mimetype: "image/png"}},
    { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&minetype=application/font-woff" },
    { test: /\.(otf|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader" },
    {
    test: /\.jsx$/,
    loaders: …
Run Code Online (Sandbox Code Playgroud)

cordova font-awesome webpack react-jsx

5
推荐指数
0
解决办法
1232
查看次数

在React代码中导入superagent时出错

我有一个用JSX编写的NodeJS服务器代码,我正在导入superagent,如下所示:

import request from 'superagent';
Run Code Online (Sandbox Code Playgroud)

当服务器在构建后启动时,我收到以下错误:TypeError:require不是函数.这发生在我编译的代码中的以下行:

var crypto = require('crypto');
Run Code Online (Sandbox Code Playgroud)

在追溯时,我意识到'强大'需要加密,这是'超级'所要求的.

我在我的客户端javascript代码中有相同的superagent导入,但工作正常.我为节点(服务器)和客户端区分了编译JS代码,两者都是相同的.因此,它的构建方式似乎不是问题.

有没有人见过这个错误,你知道需要做什么吗?

node.js superagent react-jsx

5
推荐指数
1
解决办法
3137
查看次数

如何在React JSX中处理long className?

假设我在React JSX中呈现此组件:

render() {
  return (
    <h1 className="col-xs-6 col-xs-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5">Some text</h1>
  );
}
Run Code Online (Sandbox Code Playgroud)

这些类触发我的JS linter作为一条太长的行,而且很难阅读.如何className在不破坏JSX语法或在JS linter中触发不同错误的情况下将React组件中的long 属性分成多行?(我正在使用ESLint).

javascript jsx eslint react-jsx

5
推荐指数
2
解决办法
1885
查看次数

渲染组件时如何利用点表示法?

我有一个简单的组件,它应该在我的表单组件中呈现不同类型的字段:

import React from "react";

export default class Field extends React.Component {

  render() {
    switch (this.props.type) {
      case 'textarea': {
        return (
          <div className="col-xs-12">
            <textarea
              placeholder={this.props.placeholder}
              name={this.props.name}
            >
            </textarea>
          </div>
          )
      }
      case 'text': {
        return (
          <div className="col-md-6 col-lg-4">
            <input
              type="text"
              placeholder={this.props.placeholder}
              name={this.props.name}
            />
          </div>
        )
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我在我的表单组件中使用此组件,如下所示:

export default class SubmitForm extends React.Component {

  render() {
    return (
        .
        .
        .
        <Field
          type="text"
          placeholder="something"
          name="something"
        />
        <Field
          type="textarea"
          placeholder="another"
          name="othername"
        />
        .
        .
        .
    ) …
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 reactjs react-jsx es6-modules

5
推荐指数
1
解决办法
5889
查看次数