小编lea*_*ner的帖子

函数作为React子函数无效.如果返回Component而不是render,则可能会发生这种情况

我写了一个高阶组件:

import React from 'react';


const NewHOC = (PassedComponent) => {
    return class extends React.Component {
        render(){
            return (
                <div>
                    <PassedComponent {...this.props}/>
                </div>
            )
        }
    }
}

export default NewHOC;
Run Code Online (Sandbox Code Playgroud)

我在我的App.js中使用上面的内容:

import React from 'react';
import Movie from './movie/Movie';
import MyHOC from './hoc/MyHOC';
import NewHOC from './hoc/NewHOC';
export default class App extends React.Component {
  render() {
   return (
    <div>
     Hello From React!!
     <NewHOC>
        <Movie name="Blade Runner"></Movie>
     </NewHOC>
    </div>
   );
  }
 }
Run Code Online (Sandbox Code Playgroud)

但是,我得到的警告是:

警告:函数作为React子函数无效.如果返回Component而不是render,则可能会发生这种情况.或许你打算调用这个函数而不是返回它.在App中由div(由App创建)中的NewHOC(由App创建)

Movie.js文件是:

import React from "react";

export default …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs higher-order-components

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

遍历 django 中的静态图像文件夹

我正在尝试获取文件夹中存在的所有图像链接。目前,我正在手动分配链接。但是,我希望我的 Django 从特定文件夹中获取所有图像,而不管它们的名称。

<li>
   <a href="{% static "styles/jamia/1.jpg" %}"  rel="prettyPhoto[gallery1]"><img src="{% static "styles/jamia/1.jpg" %}"></a>
</li> 

<li>
  <a href="{% static "styles/jamia/2.jpg" %}"  rel="prettyPhoto[gallery1]"><img src="{% static "styles/jamia/2.jpg" %}"></a>
</li>
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似的东西:

{% for file in {% static "styles/jamia/" %}  %}
    <img src="{{file}}" alt="">
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

所有图像都存在于jamia文件夹中。

python django

8
推荐指数
1
解决办法
2663
查看次数

替换python中的撇号/短语

我正在使用python来清理给定的句子.假设我的句子是:

What's the best way to ensure this?
Run Code Online (Sandbox Code Playgroud)

我想转换:

What's -> What is
Run Code Online (Sandbox Code Playgroud)

同样的,

 must've -> must have
Run Code Online (Sandbox Code Playgroud)

另外,动词为原始形式,

told -> tell
Run Code Online (Sandbox Code Playgroud)

单数到复数,等等.

我正在探索textblob.但并非以上所有都可以使用它.

python nlp textblob

6
推荐指数
2
解决办法
4173
查看次数

从动态渲染json数据中的React组件

我有一个json对象,如:

let data = {
            UI: {
                "baseType":"App",
                "children":[
                    {
                        "baseType":"TextField",
                        "props":{

                        }
                    }
                ]
            }
        };
Run Code Online (Sandbox Code Playgroud)

我想渲染它像:

<App>
 <TextField>
 </TextField>
Run Code Online (Sandbox Code Playgroud)

所以,我需要从json对象获取动态渲染的组件.为此,我写了一个方法:

getFromJson(obj) {
    // let Type = obj.baseType;

    let children = obj.children
        ? obj.children.map((obj) => {
                return this.getFromJson(obj,obj.baseType);
            })
        : '';
    // <></
    switch (obj.baseType) {
        case "App":

            return (
                <App key={key} {...obj.props}>
                    {children}
                </App>
            );
        case "TextField":
            //      {children}
            //  </TextField>);
            return (<TextField key={key} {...obj.props}>
                    {children}
                </TextField>
            );
        default:
            return <h1>Returning default case.</h1>;
    }

    // return <div>Hello</div>
} …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

6
推荐指数
1
解决办法
5961
查看次数

如何使用reactjs实现GTM

我正在尝试用reactjs实现GTM.我使用了react-google-tag-manager,但它没有解决目的.不知何故,数据层需要采用特定的格式,并且需要在标签的正下方,但它只是我一次可以实现的其中之一.我尝试将代码直接放在template.html中,并从我想要的组件调用该函数,但这不起作用.

import React from 'react';
import gtmParts from 'react-google-tag-manager';

class GoogleTagManager extends React.Component {
   componentDidMount() {        
       const dataLayerName = this.props.dataLayerName || 'dataLayer';
       const scriptId = this.props.scriptId || 'react-google-tag-manager-gtm';

       if (!window[dataLayerName]) {
           const gtmScriptNode = document.getElementById(scriptId);

           eval(gtmScriptNode.textContent);
       }
   }

   render() {

       const gtm = gtmParts({
           id: this.props.gtmId,
           sourcegroup: this.props.gtmGroupname,
           sourceid:this.props.gtmSource,
           age:this.props.age,
           mtongue:this.props.gtmMtongue,
           city:this.props.city,

       });

       return (
           <div>
               <div>{gtm.noScriptAsReact()}</div>
               <div id={this.props.scriptId || 'react-google-tag-manager-gtm'}>
                   {gtm.scriptAsReact()}
               </div>
           </div>
       );        
   }
}

export default GoogleTagManager;
Run Code Online (Sandbox Code Playgroud)

我在DataLayer中推送参数并检查google tag assistant addon,整个数据表是空的.

google-tag-manager reactjs

6
推荐指数
1
解决办法
6289
查看次数

不调用onNavigationItemSelected

当有人点击导航视图时,我想调用onNavigationItemSelected.代码不会调用该onNavigationItemSelected方法:

 public boolean onNavigationItemSelected(MenuItem menuItem) {
    Log.d("Hello","called navigation");

    switch (menuItem.getItemId()) {
        case R.id.home:
            mDrawerLayout.closeDrawer(GravityCompat.START);
            break;
        default:
            mDrawerLayout.closeDrawer(GravityCompat.START);
            break;

    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml是:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="slidenerd.vivz.navigationviewdemo.MainActivity">

<LinearLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />



</LinearLayout>

<android.support.design.widget.NavigationView
    android:id="@+id/main_drawer"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawer_header"
    app:itemIconTint="@color/colorAccent"
    app:itemTextColor="@color/colorTextSecondary"
    app:menu="@menu/menu_drawer" />
Run Code Online (Sandbox Code Playgroud)

navigation_menu是:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <!--All the items added without any grouping-->
    <item
        android:id="@+id/home"
        android:icon="@drawable/ic_home"
        android:title="@string/home" />

    <item
        android:id="@+id/statistics"
        android:icon="@drawable/ic_trending_up"
        android:title="@string/statistics" /> …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-studio android-navigationview

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

向表 django 添加一列

我想在 django 中的模型中添加一列。我使用的数据库是mysql。早期的数据库文件是;

class Student(models.Model):
    name = models.CharField(max_length=20, validators=[validate_name])
    password = models.CharField(max_length=100)
    email = models.EmailField(max_length=50)


class StudentForm(forms.ModelForm):
    class Meta:
        model = Student
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

现在,我也在密码后添加了以下行:

repeat_password = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

现在我正在运行以下命令:

python manage.py makemigrations
python manage.py migrate
Run Code Online (Sandbox Code Playgroud)

第一行结果的0001_initial.py内容是:

class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Student',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20, validators=[ajax.models.validate_name])),
                ('password', models.CharField(max_length=100)),
                ('repeat_password', models.CharField(max_length=100)),
                ('email', models.EmailField(max_length=50)),
            ],
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

但是,第二行不会向数据库添加任何内容:

mysql> desc ajax_student;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type …
Run Code Online (Sandbox Code Playgroud)

python mysql django

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

使用filebeat,logstash和elasticsearch将json格式日志发送到kibana?

我有这样的日志:

{"logId":"57aaf6c8d32fb","clientIp":"127.0.0.1","time":"03:11:29 pm","uniqueSubId":"57aaf6c98963b","channelName":"JSPC","apiVersion":"v1","modulName":null,"actionName":"apiRequest","typeOfError":"","statusCode":"","message":"In Auth","exception":"In Auth","logType":"Info"}

{"logId":"57aaf6c8d32fb","clientIp":"127.0.0.1","time":"03:11:29 pm","uniqueSubId":"57aaf6c987206","channelName":"JSPC","apiVersion":"v2","modulName":null,"actionName":"performV2","typeOfError":"","statusCode":"","message":"in inbox api v2 5","exception":"in inbox api v2 5","logType":"Info"}
Run Code Online (Sandbox Code Playgroud)

我想推动它们kibana.我使用filebeat将数据发送到logstash,使用以下配置:

filebeat.yml

 ### Logstash as output
logstash:
# The Logstash hosts
hosts: ["localhost:5044"]

# Number of workers per Logstash host.
#worker: 1
Run Code Online (Sandbox Code Playgroud)

现在使用以下配置,我想更改编解码器类型:

input {

     beats {
     port => 5000
     tags => "beats"
     codec => "json_lines"
     #ssl  => true
     #ssl_certificate => "/opt/filebeats/logs.example.com.crt"
     #ssl_key => "/opt/filebeats/logs.example.com.key"
     }


     syslog {
        type => "syslog"
        port => "5514"

    }

}
Run Code Online (Sandbox Code Playgroud)

但是,我仍然以字符串格式获取日志:

"message":"{\"logId \":\"57aaf6c96224b \",\"clientIp \":\"127.0.0.1 \",\"time \":\"03:11:29 …

elasticsearch kibana filebeat

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

Gunicorn 卡在使用 pid: 9293 的 Booting worker

我正在尝试为我的项目部署实现 nginx + django + gunicorn。我正在利用以下文章的帮助:http : //tutos.readthedocs.io/en/latest/source/ndg.html。我按照描述的步骤操作。现在,我正在尝试启动 gunicorn。我在屏幕上看到的是:

$ gunicorn ourcase.wsgi:application
[2016-05-19 19:24:25 +0000] [9290] [INFO] Starting gunicorn 19.5.0
[2016-05-19 19:24:25 +0000] [9290] [INFO] Listening at: http://127.0.0.1:8000 (9290)
[2016-05-19 19:24:25 +0000] [9290] [INFO] Using worker: sync
[2016-05-19 19:24:25 +0000] [9293] [INFO] Booting worker with pid: 9293
Run Code Online (Sandbox Code Playgroud)

因为,我是nginx& 的新手gunicorn,我不确定上面是否有错误。我在错误日志中什么也没得到

cat /var/log/nginx/error.log 
Run Code Online (Sandbox Code Playgroud)

它不会在屏幕上打印任何内容。请帮我解决这个问题。

django nginx gunicorn

4
推荐指数
1
解决办法
8980
查看次数

用于 reactjs 应用程序的 webpack 配置中多个入口点的多个模块

在多个入口点的情况下,这是我得到的例子:

module.exports = {
    entry: {
        user1: path.join(__dirname, './client/app1.js'),
        user2: path.join(__dirname, './client/app2.js'),
        user3: path.join(__dirname, './client/app3.js')
    },
    output: {
        path: path.join(__dirname, './static/bundle/'),
        filename: '[name].js'
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我对这个词感到困惑entry。是指入口网址吗?如果用户访问 root 然后访问另一个页面怎么办?

例如,假设我有一个站点example.com和另外两个页面,example.com/register并且example.com/contact. 现在,我想共同文件example.com并加载只登记在模块代码example.com/register并接触模块代码example.com/contact。入口点是一样的,example.com。上述解决方案在这种情况下是否有效?

reactjs webpack

3
推荐指数
1
解决办法
6980
查看次数