小编Ema*_*rco的帖子

React/TypeScript:扩展具有其他属性的组件

我正在尝试使用react来重新创建我的current组件(用纯打字稿编写),但我找不到一种方法来为扩展另一个的组件提供额外的道具.

export interface DataTableProps {
    columns: any[];
    data: any[];
}

export class DataTable extends React.Component<DataTableProps, {}> {
   render() {
       // -- I can use this.props.columns and this.props.data --
   }
}

export class AnimalTable extends DataTable {
    render() {
       // -- I would need to use a this.props.onClickFunction -- 
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要给AnimalTable一些与DataTable无关的道具.我怎样才能做到这一点 ?

typescript reactjs

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

React-intl,使用带有Typescript的api

我想使用react-intl API的formatMessage函数将消息作为占位符插入,但我无法找到访问此函数的正确方法.

这是我的简化版本:

//index.tsx
<IntlProvider locale={`fr-FR`} messages={messages_fr}>
    <NameForm/>
</IntlProvider>,

//nameForm.tsx
interface NameFormProps {
   intl?: InjectedIntlProps,
}

export default injectIntl(NameForm);

class NameForm extends React.Component<NameFormProps, {}> {

render() {
    let namePlaceholder = this.props.intl.formatMessage(
        {id: "NAME_PLACEHOLDER",
        defaultMessage: "name"
    });

    return (
        <form>
            <input placeholder={namePlaceholder} type="text"/>
        </form>
    );
}
Run Code Online (Sandbox Code Playgroud)

我使用InjectedIntlProps作为intl prop的类型,因为IntlShape似乎没有提供formatMessage方法.

我添加了?到了intl prop,因为我一直有"Property'intl'缺失"(但是不是injectIntl​​应该返回没有这个prop的组件吗?)

现在它编译,但在运行时我得到一个错误("无法读取未定义的属性'displayName'"我猜因为默认导出没有明确的名称).

我觉得我没有朝着正确的方向前进,但找不到任何打字稿/ react-intl项目的例子.

谢谢你的帮助 !

typescript react-intl

8
推荐指数
4
解决办法
6625
查看次数

java.lang.InstantiationException:无法实例化类:没有空构造函数

我正在尝试在Android上创建游戏,但我对视图的实例有疑问.我正在使用一个膨胀的视图.

这是我的视图代码:

public class GameView extends TableLayout {

public GameView(Context context, AttributeSet attrs) {
    super(context, attrs);
}
Run Code Online (Sandbox Code Playgroud)

为了活动

public class GameActivity extends Activity {

private GameView view;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    this.view = (GameView) View.inflate(this,R.layout.game, null);
}
Run Code Online (Sandbox Code Playgroud)

这是错误

D/dalvikvm( 6176): newInstance failed: no <init>()
D/AndroidRuntime( 6176): Shutting down VM
W/dalvikvm( 6176): threadid=1: thread exiting with uncaught exception (group=0x41a80700)
E/AndroidRuntime( 6176): FATAL EXCEPTION: main
E/AndroidRuntime( 6176): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.android.homework.em.go/com.android.homework.em.go.GameView}: java.lang.InstantiationException: can't instantiate class com.android.homework.em.go.GameView; no empty …
Run Code Online (Sandbox Code Playgroud)

android view

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

coq 证明:战术荒谬,它是如何工作的?

我试图理解 coq 中的证明。我很久以前在一个课程中写的,但现在我被荒谬的命令阻止了。这是证据:

Theorem Thm_2 : (~psi -> ~phi) -> (phi -> psi).
Proof.
intro.
intro.
cut (psi \/ ~psi).
intro.
elim H1.
intro.
exact H2.
intro.
absurd phi.
cut (~psi).
exact H.
exact H2.
exact H0.
apply classic.
Qed.
Run Code Online (Sandbox Code Playgroud)

当我使用荒谬的 phi 策略时,我目前的目标是 psi。荒谬的命令将其转化为两个目标:~ phi 和 phi。我的问题是我不知道也不记得这一步背后的逻辑......

感谢您的帮助 !(好像我不能在我的消息开头添加Hello...抱歉)

coq

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

标签 统计

typescript ×2

android ×1

coq ×1

react-intl ×1

reactjs ×1

view ×1