小编Ant*_*nko的帖子

“导出默认自”不适用于Babel React

react用来构建组件库。我需要将一个index.js组件中的所有组件导入。

像这样:

MyComponents/
  Button.js
  Label.js
  index.js
Run Code Online (Sandbox Code Playgroud)

index.js我尝试下一步的内部:

// this export nothing
export {default} from './Button';
// this tells me about syntax error
export default from './Button';
Run Code Online (Sandbox Code Playgroud)

我发现只有这个解决方案有效

import Button from './Button';
export default Button;
Run Code Online (Sandbox Code Playgroud)

但是我发现一些React Component库使用了我上面(export default from './Button')提到的语法-并且它以某种方式起作用。看起来他们用一些东西babel-plugin-transform-*来做到这一点。

请找到我以找到如何将我的两行导入导出转换为的一行export ... from ...。谢谢。

PS最后,我需要这样做: import Button from './MyComponents';

javascript babel node.js npm reactjs

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

Node.js/Expess.js.如果使用通配符路由器,则无法识别静态路由器

当我只使用这条路线和我的所有其他路线时,那些静态文件很好用:

var public_dir = path.join(__dirname, 'public');
app.use('/public', express.static(public_dir));
Run Code Online (Sandbox Code Playgroud)

但是当我在下面添加这些行时 - 所有请求都被这个路由器捕获(不是前一个):

app.get('/*', function(req, res){
    res.redirect('/#!' + req.path);
});
Run Code Online (Sandbox Code Playgroud)

这对我来说很奇怪,因为/public定义是第一位的.但所有请求都转到最后定义的/*请求处理程序.

现在,如果我尝试打开页面,http://127.0.0.1:3000/public/website/application.js我将被重定向到http://127.0.0.1:3000/#!/public/website/application.js.为什么会这样,以及如何以最佳方式解决这种情况?

非常感谢!


解决方案很简单.我在中间件列表中没有工作声明.

app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

这会产生网址路由问题.但奇怪的是node.js没有告诉我中间件的"错误设置".

javascript node.js express

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

JavaScript-如何使用当前JS类中的“自我”

我试图为JavaScript创建以下语法:

var user = new Class({
    name: 'No name',
    sayHello: function () {
        console.log(self.name);
    }
});

user.sayHello();  // will print "undefined" because "self" isn't visible
Run Code Online (Sandbox Code Playgroud)

我创建了以下实现Class

function Class (_properties) {
    var self = this;

    // copy all properties and methods to this class
    for (var _property_name in _properties) {
        self[_property_name] = _properties[_property_name];
    }
}
Run Code Online (Sandbox Code Playgroud)

但是问题self在于我希望在每个课程中使用。该self.name会是不确定的,因为self是一个[Window object]


问题:如何修改我的代码以self在类实例的所有函数中使用?self如果要从外部上下文调用该函数,则需要不删除上下文。

预期的结果(我的意思是上面的代码应该像下面的代码一样执行):

function Class (_properties) {
    var self …
Run Code Online (Sandbox Code Playgroud)

javascript

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

Django 1.7:如何使ManyToManyField成为必需?

我有一个Django模型ManyToManyField.我需要要求用户在此字段中选择至少一个M2M值.

我试图设置blank=False为M2M字段,但它没有帮助.

class Skill(models.Model):
    name = models.CharField(max_length=200)

class PersonSkills(models.Model):
    person = models.ForeignKey('Person')
    skill = models.ForeignKey('Skill')

class Person(models.Model):
    name = models.CharField(max_length=200)
    skills = models.ManyToManyField('Skill', through='PersonSkills')

p = Person(name='Bob')
p.save()
# success, but I expect that this should throw ValidationError, because I didn't select at least one Skill for this person
Run Code Online (Sandbox Code Playgroud)

我可以使用自Form定义定义或使用模型的覆盖save()方法来解决这种情况Person.

是否可以通过设置选项阻止创建Person没有至少一个Skill选定的ManyToManyField?或者我需要创建自定义逻辑来处理这种情况?谢谢.

我用Django 1.7Python 3.4


更新1.如何创建ModelForm控制M2M?因为在cleaned_data我只有Person …

python django web

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

标签 统计

javascript ×3

node.js ×2

babel ×1

django ×1

express ×1

npm ×1

python ×1

reactjs ×1

web ×1