小编Joh*_*son的帖子

使用带connect()的组件 - 无法读取undefined的属性'displayName'

我有一个与函数'connect'和表示组件有关的奇怪问题

import React from 'react';
import { withRouter } from 'react-router';
import { connect } from 'react-redux';

import * as optionGroupActions from 'actions/optionGroupActions';
import OptionGroupForm from 'components/optionGroup/OptionGroupForm';

const mapDispatchToProps = (dispatch, ownProps) => {
  return {
    saveOptionGroup: (optionGroup) => {
      dispatch(optionGroupActions.fetchSaveOptionGroup(optionGroup));
    },
    onClickCancel: () => {
      ownProps.router.push('/product/options');
    }
  };
};

const OptionGroupAddContainer = connect(
  null,
  mapDispatchToProps
)(OptionGroupForm);

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

这有效,但如果我用这个更改导入

import { OptionGroupForm } from 'components’;
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

connect.js:57Uncaught TypeError: Cannot read property 'displayName' of undefined
Run Code Online (Sandbox Code Playgroud)

components/index.js看起来像

// OptionGroups
import …
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 reactjs redux

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

以编程方式将RadioButton的边距或填充添加到RadioGroup中

我想以编程方式向RadioGroup添加边距或填充但不起作用.

单选按钮:

<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/ic_fruit"
    android:button="@null"
    android:checked="false" />
Run Code Online (Sandbox Code Playgroud)

RadioGroup中:

<RadioGroup
            android:id="@+id/radio_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal">

</RadioGroup>
Run Code Online (Sandbox Code Playgroud)

Java代码:

RadioButton radioButtonView = (RadioButton) getActivity().getLayoutInflater().inflate(R.layout.radio_button, null);

radioGroup.addView(radioButtonView);
Run Code Online (Sandbox Code Playgroud)

我试图用LayoutParamsdividerPadding,但它不工作

例

java android

7
推荐指数
2
解决办法
5020
查看次数

Node.js - 如何在 EJS 视图中使用局部变量

我尝试在 EJS 上使用我的局部变量。它只是一个检查用户是否已连接的变量。-> 就像此链接上的最后一篇文章一样: 如何知道用户是否使用 Passport.js 登录?

所以,

应用程序.js

app.use(function (req, res, next) {
    res.locals.login = req.isAuthenticated();
    next();
});
Run Code Online (Sandbox Code Playgroud)

查看EJS

<% if (login) { %>
      <div id="subMenuUser">
        <div class="btn-group">
          <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
            </span>Menu<span class="caret"></span>
          </button>
          <ul class="dropdown-menu pull-right" role="menu">
            <li><a href="#" role="menuitem">Menu Item 1</a></li>
            <li><a href="#" role="menuitem">Menu Item 2</a></li>
            <li><a href="#" role="menuitem">Menu Item 3</a></li>
          </ul>
        </div>
      </div>
 <% } %>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

login is not defined
Run Code Online (Sandbox Code Playgroud)

我想在所有视图中使用这个变量..可能吗?

在使用此方法之前,我每次都会在渲染中发送变量,如下所示:

res.render('ad/index', { login: req.session.user });
Run Code Online (Sandbox Code Playgroud)

javascript templates ejs node.js

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

水平使用带有两个 textView 的 ellipsize 而不裁剪第二个

我想在同一行上有两个 textView。下面你可以看到我的String对象长和短时的交互作用。

我正在尝试在 android xml 视图中执行此操作。

(当第一个文本很短时,第二个文本必须留在第一个文本的右侧)

在此处输入图片说明

这是我的代码:

<LinearLayout
            android:layout_width="0dp"
            android:layout_height="35dp"
            android:layout_weight="1"
            android:gravity="start|center_vertical">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:paddingRight="40dp"
                    android:scrollHorizontally="true"
                    android:text="TextView long"
                    android:textColor="@android:color/white"
                    android:textSize="15sp" />

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:maxLines="1"
                        android:text="Text"
                        android:textColor="@android:color/white"
                        android:textSize="15sp" />

                </RelativeLayout>

            </RelativeLayout>

        </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我的问题是我的第二个文本“文本”每次都保留在正确的父级上......

android android-layout

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

使用 setOnNavigationItemSelectedListener 时波纹效果 BottomNavigationView 冻结

当我使用setOnNavigationItemSelectedListener冻结BottomNavigationView波纹效果时,如下面的屏幕截图所示。并且效果状态一直保持这样。

我不明白为什么?

我在用着com.android.support:design:27.1.1

binding = DataBindingUtil
        .setContentView(this, R.layout.activity_main)

bottomBar = binding?.bottomBarNavigation as BottomNavigationView
bottomBar?.setOnNavigationItemSelectedListener {
    when (it.itemId) {
        TabBarObject.TAB_MESSENGER -> replaceFragment(
            MessengerFragment(),
            TabBarObject.TAB_MESSENGER.tabName
        )
        ...
        ...
    }
}

private fun getTabInfo(menuItemId: Int): TabBarObject {
    return when (menuItemId) {
        R.id.tab_messenger -> TabBarObject.TAB_MESSENGER
        ...
        ...
        else -> throw IllegalArgumentException("UNKNOWN TAB BAR TYPE")
    }
}

private fun replaceFragment(fragment: Fragment, tag: String): Boolean {
    val ft = supportFragmentManager.beginTransaction()

    ft.replace(R.id.frame_layout, fragment, tag)
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
    ft.commitAllowingStateLoss()
    return true
}
Run Code Online (Sandbox Code Playgroud)

活动主文件

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

android kotlin material-design bottomnavigationview

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