Ошибка при подключении из Remix через rpc к локальной цепочке блоков

import React, { Component, PropTypes } from 'react';

Это говорит:

Импортирует экспорт по умолчанию из 'react' под именем React и импортирует именованные экспортированные файлы Component и PropTypes под теми же именами.

Это объединяет два общих синтаксиса, которые вы, вероятно, видели

import React from 'react';
import { Component, PropTypes } from 'react';

. Первый используется для импорта и имени экспорта по умолчанию, второй для импорта указанным именованным экспортом.

Как правило, большинство модулей будут либо предоставлять единый экспорт по умолчанию, либо список именованного экспорта. Для модуля, как правило, предоставляется как экспорт экспорта, так и экспорт по умолчанию. Тем не менее, в случае, когда есть одна функция, которая чаще всего импортируется, но также дополнительные вспомогательные функции, это допустимый проект для экспорта первого в качестве значения по умолчанию, а остальные - для имени экспорта. В таких случаях вы использовали бы синтаксис import, на который вы ссылаетесь.

Другие ответы находятся где-то между неправильным и запутанным, возможно, потому, что документы MDN в момент запроса этого вопроса были неправильными и запутанными , MDN показал пример

import name from "module-name";

и сказал, что name является «именем объекта, который получит импортированные значения». Но это вводит в заблуждение и неверно; в первую очередь, есть только одно значение импорта, которое будет «получено» (почему бы просто не сказать «назначено» или «используется для ссылки») name, а значение импорта в этом случае является экспорт по умолчанию из модуля.

Другой способ объяснить это - отметить, что указанный импорт точно идентичен

import { default as name } from "module-name";

, а пример OP точно идентичен

import { default as React, Component, PropTypes } from 'react';

В документации MDN был показан пример

import MyModule, {foo, bar} from "my-module.js";

и утверждалось, что это означает

Импортировать содержимое всего модуля, причем некоторые из них также явно по имени. Это вставляет myModule (sic), foo и bar в текущую область. Обратите внимание, что foo и myModule.foo совпадают, как bar и myModule.bar

. Что сказано в MDN и какие другие ответы утверждают на основании неправильной документации MDN, является абсолютно неправильным и может основываться на более ранней версии спецификации. Что это на самом деле делает

Импортировать экспорт модуля по умолчанию и некоторые явно названные экспорта. Это вставляет MyModule, foo и bar в текущую область. Названия экспорта foo и bar - not , доступные через MyModule, который является экспортом по умолчанию , а не какой-либо зонтик, охватывающий все экспортные данные.

< / blockquote>

(Экспорт по умолчанию - это значение, экспортированное с помощью синтаксиса export default, которое также может быть export {foo as default}.)

Авторы документации MDN, возможно, путались со следующей формой :

import * as MyModule from 'my-module';

Импортирует весь экспорт из my-module и делает их доступными под именами, такими как MyModule.name. Экспорт по умолчанию также доступен как MyModule.default, поскольку экспорт по умолчанию - это не что иное, как другой экспорт с именем default. В этом синтаксисе нет способа импортировать только подмножество именованного экспорта, хотя можно импортировать экспорт по умолчанию, если он есть вместе со всеми указанными экспортами с помощью

import myModuleDefault, * as myModule from 'my-module';
1
задан dileepVikram 30 March 2019 в 02:17
поделиться

1 ответ

  • Убедитесь, что вы изменили среду в remix для провайдера Web3
  • при запуске geth, если вы хотите подключить его к remix, то вам нужно разрешить удаленные подключения к узлу ethereum. Это можно сделать, добавив --rpccorsdomain "URL-адрес ВЕБ-САЙТА"
  • заглавные слова в приведенной ниже команде означает, что вам нужно указать, как требуется.

    geth --datadir = "СПРАВОЧНИК БЛОКА ГЕНЕЗИСА" --rpc --rpcport ПОРТ-НОМЕР --rpccorsdomain "URL-адрес ВЕБ-САЙТА"

sample: geth --datadir = "" --rpc --rpcport 8545 --rpccorsdomain = "*" --rpcapi = "miner, web3, debug, net, eth" console 2 >> logger.log

  • rpc разрешает HTTP через него а не HTTPS, поэтому в URL-адресе измените https на http://remix.ethereum.org/ , и ide следует подключить через http, а не через https. Используйте ссылку, указанную в этой строке, чтобы подключиться к ide.
0
ответ дан Veerabala J 30 March 2019 в 02:17
поделиться