小编gps*_*ugy的帖子

如何使用expressJS提供ReactJS静态文件?

问题

我已经成功地为我的React应用程序提供了index.html文件,但是在我的第一个React组件的html文件index.js中替换<root>它并没有触发ReactDOM.render. 如何index.js启动文件?如果我对React应用程序服务的理解在某些方面存在偏差,我将非常感谢您的澄清.

文件夹结构

  • / - 包含所有服务器端文件,包括 server.js
  • / client/ - 包含所有React文件
  • / client/build/ - 包含所有生产就绪的客户端文件
    • /客户/建设/index.html
    • / client/build/static/js/main.[hash].js- 似乎是index.js包含ReactDOM.renderfor my React应用程序的缩小版本

当前部署

  • 我正在使用Facebook的create-react-app作为/ client /目录,包括npm run build自动填充/ client/build /

文件片段

// server.js
let app = express();
app.use(express.static(path.join(__dirname, '../client/public')));
Run Code Online (Sandbox Code Playgroud)

这会成功加载create-react-app提供的默认index.html

// index.html
<body>
  <noscript>
    You need to enable JavaScript to run this app.
  </noscript>
  <div id="root"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

上面的代码部分可能/可能没用,但它是create-react-app附带的默认html文件.我是否需要使用引用缩小index.js 文件的脚本标记替换noscript标记?我试过了,并没有改变,但也许是因为不正确的相对路径制作.

static express reactjs server create-react-app

10
推荐指数
1
解决办法
7738
查看次数

如何使用 CocoaPods 排除 SwiftLint 的文件/文件夹?

问题

在构建我的 xcode Swift 项目时,我从 .swiftlint.yml 文件中排除的文件/文件夹的 SwiftLint(即空计数违规)收到违规,但在该excluded部分中指定这些文件/文件夹时,违规仍然发生。

代码

.swiftlint.yml

included:

excluded:
  - Pods
  - myproject/API/api_implementation.swift
  - myproject/API
Run Code Online (Sandbox Code Playgroud)

构建阶段运行脚本

"${PODS_ROOT}/SwiftLint/swiftlint"
Run Code Online (Sandbox Code Playgroud)

项目结构

/projectroot
    .swiftlint.yml
    Pods/
    myproject/
        API/
            api_implementation.swift
Run Code Online (Sandbox Code Playgroud)

lint既不myproject/API/api_implementation.swift也不myproject/API/排除整个目录!

问题

从 lint 中排除此文件和文件夹有什么不正确之处?如果我的语法不正确,正确的语法是什么?如果我的路径不正确,那么 SwiftLint 文件从哪里运行?有趣的是,即使 .swiftlint.yml 文件在我项目的根目录中,运行的 swiftlint 文件也在 Pods/SwiftLint/

也许 Cocoapods 需要额外集成才能让 SwiftLint 工作的方式会导致这个问题。但是,我已尝试清空构建阶段运行脚本,并确认 .swiftlint.yml 文件确实在构建中运行。

任何帮助或想法将不胜感激!

xcode cocoapods swiftlint

7
推荐指数
1
解决办法
4553
查看次数

如何使用带有 createSelectorCreator() 的 Reselect 来记忆(深度比较)Redux 对象?

情况

使用 React Redux,在mapStateToProps我的一个容器组件中,为了方便起见,我传递了一个具有 8 个以上键的对象。(我知道向下传递对象是一种反模式,但在我的例子中,传递单个对象而不是许多单独的 props 的便利性非常重要。)

问题

您可以使用reselectmemoize 整个对象来传递mapStateToProps,仅通过深度比较整个对象来传递它吗?如果是这样,正确的方法是什么?

我的尝试

我已阅读reselect文档部分“为 defaultMemoize 自定义 equalsCheck”,并阅读了许多尝试使用记忆数组reselect的帖子。基于这些知识,我尝试执行以下操作,但没有成功:

import _ from 'lodash';
import { createSelector, createSelectorCreator, defaultMemoize } from 'reselect'

const createDeepEqualSelector = createSelectorCreator(
  defaultMemoize,
  _.isEqual,
);

const getLargeObject = createDeepEqualSelector(
  (state) => {
    // Get the individual values from state
    const {
      val1, val2, val3, val4, val5, val6, val7, val8, val9, val10
    } = state;

    // Create a convenient object …
Run Code Online (Sandbox Code Playgroud)

memoization reactjs react-redux reselect

6
推荐指数
0
解决办法
1814
查看次数

Django:如何在 Factory Boy 工厂和序列化器中正确使用 ManyToManyField?

问题

我正在使用一个模型类Event,其中包含另一个模型类的可选UserManyToManyField (不同的事件可以有不同的用户),以及一个带有序列化器的工厂类EventFactory(使用 Factory Boy 库)EventSerializer。我相信我已按照文档进行工厂制作和序列化,但收到错误:

ValueError:“<事件:测试事件>”需要有字段“id”的值,然后才能使用此多对多关系。

我知道在链接它们之前必须在 ManyToMany 中创建两个模型实例,但我看不到添加发生在哪里!

问题

有人可以澄清如何以我尚未采用的方式使用模型、工厂男孩和序列化器来正确使用 ManyToManyField 吗?

设置

这是我的代码:

模型.py

@python_2_unicode_compatible
class Event(CommonInfoModel):
    users = models.ManyToManyField(User, blank=True, related_name='events')
    # other basic fields...
Run Code Online (Sandbox Code Playgroud)

工厂.py

class EventFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = models.Event

    @factory.post_generation
    def users(self, create, extracted, **kwargs):
        if not create:
            # Simple build, do nothing.
            return

        if extracted:
            # A list of users were passed in, use them
            # NOTE: This does not seem to …
Run Code Online (Sandbox Code Playgroud)

django manytomanyfield django-serializer factory-boy

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

从浏览器中运行的前端 JavaScript 代码调用 Yelp API

非常感谢任何人的帮助。我对 React 开发还比较陌生,使用 Mac OSX 和 Chrome 作为浏览器。我有一个小型应用程序,尝试使用“isomorphic-fetch”从 Yelp Fusion 的 API 发出异步 GET 请求,但收到以下错误:

Fetch API 无法加载https://api.yelp.com/v3/businesses/search[剩余 URL]对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://localhost:3000 ”。响应的 HTTP 状态代码为 500。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。

我做了很多搜索,看看已经存在对相同问题的回应,但我对如何用我对这种开发环境相对较新的知识来解决我的问题感到更加困惑。(似乎特别有用的答案是:对预检请求的响应未通过访问控制检查在 componentDidMount 内部使用 HTTP 授权标头的 API 请求,但我并不真正了解如何在我的环境中实际实现这些解决方案。我所做的任何尝试看起来不正确并且不会导致更改。)。

附带说明:我已经在 Chrome 浏览器上安装了 Allow-Control-Allow-Origin: * 扩展程序,但我收到了相同的错误 - 只是对其进行了简短、不太详细的描述:

Fetch API 无法加载https://api.yelp.com/v3/businesses/search[剩余网址]。预检响应具有无效的 HTTP 状态代码 500

以下是我在代码中调用 fetch 的方式:

var options = (
    method: 'get',
    headers: new Headers({
        'Access-Control-Allow-Origin': '*',
        'Authorization': [my token]
        'Content-Type': 'application/json'
    }) …
Run Code Online (Sandbox Code Playgroud)

javascript cors reactjs redux fetch-api

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

React Redux:即使mapStateToProps是

我的申请和存储

通过将Redux与ReactJS结合使用,我在存储中保留了一个对象数组(称为结果),并分派了对其进行排序和操作的操作。在mapStateToProps中,我返回此结果数组,该结果数组将结果呈现在视图的列表中。

// in Component file
export default class ResultList extends Component {
    constructor(props) {
        super(props);
        this.renderResults = this.renderResults.bind(this);
    }

    renderResults(results) {
        return (
            results.map((result) => {
                return <AnotherComponent />
            })
        );
    }

    render() {
        const { results } = this.props;
        return (
            <div>
                <ul>
                    {this.renderResults(results)}
                </ul>
            </div>
        )

// in Container Component file
const mapStateToProps = (state, ownProps) => {
    console.log('map state is triggered');
    return {
        results: state.results
    };
}
Run Code Online (Sandbox Code Playgroud)

问题

我发现,尽管我的mapStateToProps成功触发了将props更新到类组件的操作,但是 由于某种原因,该视图仅在操作结果数组的第一时间更新,而在以后对商店的更新时不更新。(请参阅下面的更新。这并不完全准确。)

我已确保此问题不是由于减速器中的状态突变(通常如此)所致;我已经确认,每次存储更新时,mapStateToProps都会运行(如console.log所示)。问题似乎出在从mapStateToProps返回的结果道具和实际呈现结果数组的视图之间,但是我看不到Redux在后台做什么。

别人不得不与我遇到的最接近的问题似乎是这个,但我不知道此修复程序如何或是否适用于我对存储数组的使用: …

arrays sorting reactjs redux react-redux

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

Sublime:如何在 CamelCase 变量中按单个单词进行选择?

免责声明

如果已经在其他地方回答了这个问题,我会提前道歉,但我在找到一个方面收效甚微。请随时将我重定向到另一个 stackoverflow 帖子!

例子

var CamelCasedVariable;
//  ^Cursor is here (to the left of 'C')
Run Code Online (Sandbox Code Playgroud)

使用Mac OS, Shift + Cmd + Right Arrow开始在崇高指定位置突出了所有CamelCasedVariable

问题

如何使该命令的单次执行突出显示Camel?或者也许还有另一个键盘快捷键或包可以做到这一点?

任何帮助,将不胜感激。谢谢!

keyboard-shortcuts editor highlight sublimetext sublimetext3

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