我目前正在通过webpack/babel在React应用程序中使用ES6.我正在使用索引文件来收集模块的所有组件并将其导出.不幸的是,这看起来像这样:
import Comp1_ from './Comp1.jsx';
import Comp2_ from './Comp2.jsx';
import Comp3_ from './Comp3.jsx';
export const Comp1 = Comp1_;
export const Comp2 = Comp2_;
export const Comp3 = Comp3_;
Run Code Online (Sandbox Code Playgroud)
所以我可以很好地从其他地方导入它,如下所示:
import { Comp1, Comp2, Comp3 } from './components';
Run Code Online (Sandbox Code Playgroud)
显然这不是一个非常好的解决方案,所以我想知道,如果有任何其他方式.我似乎无法直接导出导入的组件.
我有一个关于React的问题shouldComponentUpdate(当没有被覆盖时).我更喜欢纯粹的功能组件,但我担心它每次都会更新,即使道具/状态没有改变.所以我正在考虑使用PureComponent类.
我的问题是:功能组件shouldComponentUpdate是否与PureComponents 具有相同的检查?或者它每次更新?
我在指南中遇到过:
viewValidation : Model -> Html msg
viewValidation model =
let
(color, message) =
if model.password == model.passwordAgain then
("green", "OK")
else
("red", "Passwords do not match!")
in
div [ style [("color", color)] ] [ text message ]
Run Code Online (Sandbox Code Playgroud)
所以这是一个功能,它需要Model.
Html msg通常看起来像我们Html用参数调用函数msg.
msg但是,它似乎并没有在viewValidation函数的任何其他部分扮演任何角色.那么这是什么意思呢?在这种情况下它是什么意思?
我目前正在尝试在我的NodeJS + React App中实现Auth0.虽然我有一个很大的问题,但本教程非常有用且有用.每当我尝试通过Auth0登录/注册时,我都会得到
XMLHttpRequest无法加载 https://XYZ.eu.auth0.com/usernamepassword/login.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:3000 '访问.对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:3000 '访问.
所以我粗略地理解这意味着什么.但我只是不知道在哪里设置所需的选项以允许此请求到Auth0.在服务器端?在浏览器代码中?
最好的祝福
编辑:正如RodrigoLópezDato指出的那样,我可以在我的应用程序中编写Origins:https://manage.auth0.com/#/applications
我在本地开发时应该把它放在那里?我的IP?
我很新,目前正在努力学习榆树.我来自JS/React并且之前没有任何RFP经验.
我现在在指南中:http: //guide.elm-lang.org/architecture/user_input/text_fields.html
我有问题的部分是update和view:
-- UPDATE
type Msg
= Change String
update : Msg -> Model -> Model
update msg model =
case msg of
Change newContent ->
{ model | content = newContent }
-- VIEW
view : Model -> Html Msg
view model =
div []
[ input [ placeholder "Text to reverse", onInput Change ] []
, div [] [ text (String.reverse model.content) ]
]
Run Code Online (Sandbox Code Playgroud)
让我们从Msg声明开始.指南说:
它需要一个参数,在这种情况下是我们声明Msg类型时创建的Change函数:
更改:字符串 - >消息
我不知道这是怎么发生的: …
有没有办法影响console.log提供自定义对象?我试图覆盖但不起作用的customObject.prototype.toString方法.
有任何想法吗?
我目前正在玩一堆Facebook的新技术.
我对GraphQL架构有一点问题.我有一个对象模型:
{
id: '1',
participants: ['A', 'B'],
messages: [
{
content: 'Hi there',
sender: 'A'
},
{
content: 'Hey! How are you doing?',
sender: 'B'
},
{
content: 'Pretty good and you?',
sender: 'A'
},
];
}
Run Code Online (Sandbox Code Playgroud)
现在我想为此创建一个GraphQL模型.我这样做了:
var theadType = new GraphQLObjectType({
name: 'Thread',
description: 'A Thread',
fields: () => ({
id: {
type: new GraphQLNonNull(GraphQLString),
description: 'id of the thread'
},
participants: {
type: new GraphQLList(GraphQLString),
description: 'Participants of thread'
},
messages: {
type: new GraphQLList(),
description: …Run Code Online (Sandbox Code Playgroud) 我在NavDropdowns中遇到了eventKey问题.
var Navigation = React.createClass({
handleSelect: function(eventKey){
console.log(eventKey);
},
render: function() {
return (
<Navbar brand='Navbar' toggleNavKey={0}>
<CollapsibleNav eventKey={0} onSelect={this.handleSelect}>
<Nav navbar>
<NavItem eventKey={1}>Home</NavItem>
</Nav>
<Nav navbar right hide>
<NavItem eventKey={2}>Login</NavItem>
<NavDropdown eventKey={3} title='NavDropdown' id='basic-nav-dropdown'>
<MenuItem eventKey={4}>Action 1</MenuItem>
<MenuItem eventKey={5}>Action 2</MenuItem>
</NavDropdown>
</Nav>
</CollapsibleNav>
</Navbar>
)
}
});
Run Code Online (Sandbox Code Playgroud)
我希望能够在我的selectHandler中告诉我点击了什么Nav元素.这适用于除NavDropdown之外的所有元素:
单击Dropdown不会触发selectHandler,这很好.但是,当我单击其中一个MenuItem,而不是给我一个eventKey时,它给了我一个事件对象.
如何修改NavDropdown以便它为我提供eventKey?
编辑:我的版本是:
"react": "^0.14.0-beta3",
"react-bootstrap": "^0.25.100-react-pre.0",
Run Code Online (Sandbox Code Playgroud) 有没有办法用react-router来模块化你的路线,然后只需导入它们并组装它们?
所以不是这样的:
<Router>
<Route path="/" component={App}>
<Route path="inbox" component={Inbox}>
<Route path="messages/" component={AllMessages} />
<Route path="messages/:id" component={Message} />
</Route>
<Route path="calendar" component={Calendar}>
<Route path="year" component={Year}>
<Route path="month" component={Month}>
<Route path="week" component={Week}/>
</Route>
</Route>
</Route>
</Route>
</Router>
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
let InboxRoutes = React.createClass({
render: function(){
return (
<Route path="inbox" component={Inbox}>
<Route path="messages/" component={AllMessages} />
<Route path="messages/:id" component={Message} />
</Route>
);
}
});
<Router>
<Route path="/" component={App}>
<InboxRoutes/>
<CalendarRoutes/>
</Route>
</Router>
Run Code Online (Sandbox Code Playgroud)
我明白了:
Warning: Location did not match any routes
我正在尝试输入传奇。我正在使用流类型定义:https : //github.com/flowtype/flow-typed/blob/master/definitions/npm/redux-saga_v0.13.x/flow_v0.36.x-v0.37.x /redux-saga_v0.13.x.js
export function* fetchUsers(): Generator<IOEffect, void, any> {
const users = yield call(UserApi.list)
yield put(fetchUserSucc(users))
}
Run Code Online (Sandbox Code Playgroud)
但是 flow 一直在抱怨:
标识符
IOEffect无法解析名称
我究竟做错了什么?
reactjs ×4
javascript ×3
elm ×2
node.js ×2
auth0 ×1
babeljs ×1
cors ×1
ecmascript-6 ×1
flowtype ×1
graphql ×1
react-router ×1
redux ×1
redux-saga ×1
syntax ×1
webpack ×1